1.
1.new出的对象,不用自己管理内存释放;
2.比如两个类对象指针a,b同时指向一个苹果,若苹果消亡,会将a,b同时指向空。
3.保存时,将工程中的actor,属性等能够保存在本地就是uob在发挥作用。
4.不管在ue,还是c++ 中修改一个属性,另一方也会跟着修改
UCLASS:
UClass:
转到定义:
常用标记宏:
UFUNCTION:
常用标记:
BluePrintCallble:
只有在函数前写了此宏,UE4中才能使用C++的函数
声明函数:
定义函数 :
UE中创建MyActor类:
写逻辑:
结果显示:
Categroy:层级分类,在UE4中可调用C++写的函数后,在第二个参数写上Categroy=“ue4|01|02”可以将写的函数放在ue4、01、02分类下,“|”增加分类层级。
BluePrintImplementableEvent(类似一个纯虚函数):
在c++中不用定义,依然可以被C++调用且不报错,在Ue4中,查找该定义时,是一个事件(函数);
也可以使用Categroy分层;
当有返回至类型的时候,会被定义在在UE4函数重载中 :
声明方式:
必须定义:
UE4:
功能演示:
C++实现:
UE4实现:
结果:
只运行蓝图中逻辑;
如果想要调用父类(C++中)的逻辑,则:
结果:
总结:此用法是可以在C++中声明定义函数(写功能),蓝图中也可以编辑(写功能);
声明:
定义:
结果:(输出C++写的函数的返回值)
1.UProPerty
常用标记:
实现:
Num1只能在UE4中get获取,却不能Set得到Num1
Num2既可以get得到,set也可以得到::
Config:声明一个变量,此类也要将Config至一个数据文件中储存(Saved\Config\Windows\Game)
Cpp文件中调用成员函数保存Num2的数据(SaveConfig),读取缓存:LoadConfig()数据;
保存,读取;
保存文件内容:
EditAnywhere编辑器和细节面板都可以
EditDefaultsOnly只能在编辑器编辑,细节面板不可编辑
EditInstanceOnly原型不可以,只能在实例中看到属性
Num3的区别:
Num2的区别:
VisibleAnywhere
VisibleDefaultsOnly
VisibleInstanceOnly
Num3的区别:(与Edit的区别就是无法编辑):
Num2的区别:
EditFixedSize:
不可编辑:
初始化:
Meta:
1.
修改名称:(不是真正意义上的名字,而是别名的概念,形式上被修改)
只UE4中显示:
搜索项也会被修改。
2.设置区间:
滑动时只可滑动到0-1,手动输入时可以随意输入,类似限制提示;
ClampMin:
输入也会被限制;
通过一个布尔变量约束是否可以在面板中编辑: