ue5 c++ interface 接口

这篇具有很好参考价值的文章主要介绍了ue5 c++ interface 接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

https://docs.unrealengine.com/5.2/en-US/interfaces-in-unreal-engine/

1 纯c++ 接口  没有ufunction

#pragma once

#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "ALWorldWeatherConfig.h"
#include "AL_WeatherInterface.generated.h"

// This class does not need to be modified.
UINTERFACE(MinimalAPI)
class UAL_WeatherInterface : public UInterface
{
	GENERATED_BODY()
};

/**
 * 
 */
class SKYCREATORPLUGIN_API IAL_WeatherInterface
{
	GENERATED_BODY()

	// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:

//纯虚函数
		virtual void GetLevelWeatherPresetConfig(TSoftObjectPtr<UALWorldWeatherConfig>& PresetConfig) const = 0;
};



UCLASS()
class ABOVELAND_API AALWorldSettings : public AWorldSettings, public IAL_WeatherInterface
{
	GENERATED_BODY()
public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AL Weather")
	TSoftObjectPtr<UALWorldWeatherConfig> WeatherConfig;

	//interface override 必须有override
	virtual void GetLevelWeatherPresetConfig(TSoftObjectPtr<UALWorldWeatherConfig>& PresetConfig) const override;

};



//调用

		if (IAL_WeatherInterface* Interface = Cast<IAL_WeatherInterface>(InWorld.GetWorldSettings()))
		{
			Interface->GetLevelWeatherPresetConfig(WorldWeatherConfig);
		}

2 纯c++ 有ufunction文章来源地址https://www.toymoban.com/news/detail-693485.html

UINTERFACE(MinimalAPI, BlueprintType)
class UALClimbItemInterface : public UInterface
{
	GENERATED_BODY()
};

/**
 * 
 */
class ABOVELAND_API IALClimbItemInterface
{
	GENERATED_BODY()

	// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:

	UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "ALClimbItemInterface")
		void CalculateClimbItemData();
	UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "ALClimbItemInterface")
		void CopyClimbItemData(UPARAM(ref) FClimbItemData& InOutRes,bool InOrOut);
	UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "ALClimbItemInterface")
		void ShowHook(bool IsShow);

};


UCLASS()
class ABOVELAND_API AALClimbStaticMeshActor : public AStaticMeshActor ,public IALClimbItemInterface
{
	GENERATED_BODY()
public:
	AALClimbStaticMeshActor();
public:
    //必须带_Implementation 必须带override
	void CalculateClimbItemData_Implementation() override;
	void CopyClimbItemData_Implementation(FClimbItemData& InOutRes, bool InOrOut) override;

	void ShowHook_Implementation(bool IsShow) override;



};



//调用

IALClimbItemInterface::Execute_CopyClimbItemData(CurClimbItemActor, ClimbItemData, false);

到了这里,关于ue5 c++ interface 接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UE5 C++ UObject实例化

    一.创建UObject C++类  在MyObject中声明结构体FMyDataTableStruct 在MyPawn里面,先将头文件里包含 MyObject.h 在MyPawn中声明一个UMyObject类型的指针 TSubclassOf  是提供 UClass 类型安全性的模板类。例如您在创建一个投射物类,允许设计者指定伤害类型。您可只创建一个 UClass 类型的 UPROPER

    2024年02月21日
    浏览(46)
  • UE5 C++ 静态加载资源和类

    一.上篇文章创建组件并绑定之后 在Actor中加载初始化了组件,现在在组件中赋值。使用static ConstructorHelpers::FObjectFinderTTempName(TEXT(\\\"Copy Reference\\\"));再用TempName.Object 里面的资源都来自StarterContent   效果如下: 二.静态加载类 1.在Actor中再声明一个AActor类  2.在静态加载类时使用

    2024年02月21日
    浏览(52)
  • UE5创建C++项目里报错

    UE5创建C++项目里报错: Running C:/Program Files/Epic Games/UE_5.0/Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.exe  -projectfiles -project=\\\"F:/zhanting6.30/PAK/ReadWriteTxtProject/ReadWriteTxtProject.uproject\\\" -game -rocket -progress You must install or update .NET to run this application. App: C:Program FilesEpic GamesUE_5.0EngineBin

    2024年02月05日
    浏览(46)
  • UE5 c++ 的文件操作(记录备忘)

    函数库.h 函数库.cpp      

    2024年02月14日
    浏览(45)
  • Ue5.1创建C++项目(Rider)

    1、下载地址 2、选择左侧“Visual Studio Community 2019” 3、选择这两个 4、单体里添加这几个: 注意最后一个选下边这个 5、下载完成后到这个目录 将原来的14.29.30133文件夹重复名,改成14.29.30136,否则报错 整整baidu、google了1天,网上都没有解决办法 Unable to find valid 14.29.30136 too

    2024年02月02日
    浏览(54)
  • UE5 C++ UENUM 和 USTRUCT

    一.首先在APawn里声明 UENUM 和 USTRUCT。UENUM 有两种定义方式 一种是使用命名空间: 还有是继承uint8: 通过申明class类 别名来替代 USTRUCT的定义 上面的第二种有类似但仍然有很多的差异: 首先要有GENERATED_USTRUCT_BODY()这个函数 并且参数要有 宏定义UPRPERTY 二.在 AMyPawn 里定义 En

    2024年02月22日
    浏览(44)
  • UE5.1.1C++从0开始(4.虚幻的接口以及交互功能)

    这一个章节对于第一次接触虚幻的人来说可以说是最绕的一个点,因为老师突然给你塞了很多的概念,对于这一块的学习,我个人的推荐是:先把蓝图搞明白了,再对应到C++的代码中,不然一定会被整的晕头转向。还是,有不懂的点就来问我。 主要有几个大点: 接口 自定义

    2024年02月04日
    浏览(41)
  • UE5- c++ websocket客户端写法

    ue5 c++ 实现socket客户端,读取服务端数据,并进行解析 {projectName}.Build.cs里增加 \\\"WebSockets\\\",\\\"JsonUtilities\\\", \\\"Json\\\"配置信息,最终输出如下: 说明,其中myue521是我的模块名,文件名为myue521.Build.cs。 新增的模块:\\\"WebSockets\\\",\\\"JsonUtilities\\\", \\\"Json\\\"。 准备实现自己的webscoket_client。具体操作

    2024年02月10日
    浏览(38)
  • UE5 C++ 创建可缩放的相机

    一.要将相机设置在Pawn类里 1.在MyPawn头文件里,加上摇臂和相机组件 2.在Pawm里声明SceneComponet,SpringArmComponent,CameraComponent组件指针 再声明一个移动缩放调用的函数 在Pawn里将的组件通过CreateDefaultSubobjectT(TEXT(\\\"Name\\\"))创造命名。 根组件赋值为MyRoot的物体组件。SetupAttackment来连

    2024年02月21日
    浏览(38)
  • UE5 C++ UGameInstance 功能、作用及应用

    网上有很多文章介绍,例如在游戏中只有一个实例,换关卡不会丢失等。暂时省略。 UWebSocketGameInstance.h里的定义 说明:  Init()方法是在UGameInstance.h里定义的。源码里的注解是允许在这里自定义一些实现 Shutdown()方法是在UGameInstance.h里定义的。源码里的注解是允许在这里自定义

    2024年02月10日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包