教程链接:示例1:CompleteQuest - 将蓝图转换为C++ (epicgames.com)
1.常用的引用需要记住,如图所示。
2.蓝图中可以调用C++函数,也可以实现C++函数
BlueprintImplementableEvent:C++只创建,不实现,在蓝图中实现
BlueprintNativeEvent:C++中创建,实现,在蓝图中不必须实现
3.蓝图中,比如常用的结构体,最好在C++中写好,在蓝图中调用
注意:结构体如果改变,在蓝图中创建的结构体实例的数据,会清零
(可以添加,删减,不受影响;但是,改名或者改变量类型,改变量的蓝图类,肯定会清零)
4.使用Actor还是Component,取决于使用的方式和具体方法:
5,编辑器和蓝图对于Uproperty变量,不同级别的访问修改权限,下面为标识符代表的权限
6.蓝图中的类型,对应C++中的类型。
注意:UE5引入了 TObjectPtr,一种基于模板的64位指针系统。
TObjectPtr 变量在传递给函数或保存为局部变量时,会自动转换为原始指针
例如:AActor 的 RootComponent 属性在UE4中是一个 USceneComponent* 指针
UE5中:TObjectPtr
例如:在调用容器函数的"Find"类函数时,请使用 TObjectPtr
7.创建组件,要写到构造函数处
记住该函数,所有创建组件都要用到
xxx类型对象 = CreateDefaultSubObject<类型>(TEXT("显示的名字"));
例如下:代码和蓝图中显示的组件是一一对应的
//.h文件
protected:
UPROPERTY(VisibleAnywhere,BlueprintReadOnly)
UParticleSystemComponent* ParticleSystem;
UPROPERTY(VisibleAnywhere,BlueprintReadOnly)
USceneComponent* Root;
//.cpp文件
protected:
UPROPERTY(VisibleAnywhere,BlueprintReadOnly)
UParticleSystemComponent* ParticleSystem;
UPROPERTY(VisibleAnywhere,BlueprintReadOnly)
USceneComponent* Root;
先记到这。。。。