【学习手机】第三天笔记,虚幻的三个常见宏

[复制链接]
查看2892 | 回复8 | 2018-1-13 11:39:45 | 显示全部楼层 |阅读模式
本帖最后由 user 于 2018-1-15 21:21 编辑

虚幻的3个宏
UClass()宏,如果你用虚幻编辑器添加c++类时,创建的类会自动添加这个宏
宏里面可以传递参数:
1、NotBlueprintable,这个参数设置了这个类不能被蓝图编辑,也就是说不能通过这个类创建蓝图子类
同时在其他蓝图类中也不能拥有这个类的对象
2、Blueprintable,这个参数会设置类为蓝图可编辑状态,当然,c++的类并不能使用蓝图去编辑
但是我们可以通过这个类去创建蓝图子类,从而在蓝图中调用c++的方法,宏里面默认传入这个参数
3、ABstact 将这个类定义为一个抽象类,只能不能被实例化,只有继承的子类才能被实例化
4、Const 这个参数会把这个类定义为一个常量类,类中所有变量都为常量,函数为常函数
5、config=configName 这个参数将会设置这个类字的数据保存到configName.ini这个配置文件中,不过这个类还需要配合UPROPERTY()宏进行设置


UFUNCTION()宏,这个宏用于管理c++类中的函数,
1、Exec这个参数之前提到过,会将一个函数定义成为一个控制台指令,但是并不适用于所有的函数、
我只在GameMode类中使用成功过,继承自AActor的类中的成员函数好像并不能使用
2、BlueprintCallable,设置这个参数后才能够在蓝图中被调用,
3、BlueprintImplementableEvent,这个参数声明的函数,可以不在c++中实现,而在蓝图中实现
(这个的特点是当函数不设置参数和返回值时函数在蓝图中将会以一个红色Event的形式出现,用于添加逻辑,不能够被直接调用但是可以被绑定事件
而当函数有了参数和返回值时,在蓝图中并不能找到函数的调用节点了,和同学的推测是,这个函数虽然实现在蓝图中,但是目的还是为了c++的调用,所以
不能在蓝图中使用是为了避免出现多余的情况)
3、BlueprintNativeEvent,这个参数是上一个参数的升级版,这个参数定义的函数下面需要跟一个 XXX_Implementation()的函数。
并且需要实现xxx_Implementation()这个函数,当在蓝图中没有实现xxx函数时,调用xxx函数的地方会自动调用XXX_Implementation()
4、BlueprintPure,这个参数设置的函数必须要有一个返回值,这个参数设置之后,在蓝图中对应的参数没有执行线,但是会有一个值针脚(我自己起的,知道正确名字的大佬希望可以告诉我)
类似于蓝图中对一个变量使用get方法时的节点,这个函数,会在使用那个节点获取数据时自动调用

UPROPERTY()宏,这个宏用于管理c++类中的变量
1、BlueprintReadOnly,这个从字面意思可以看出,这个参数允许蓝图获取,但是不允许蓝图编辑(获取方法是在蓝图里点击右键,然后。。。)
2、BlueprintReadWrite,这个是指允许蓝图获取和修改变量
3、Config,这个配合UCLASS()宏的设置然后在函数某个位置调用SaveConfig之后,就会将这个数据保存到配置文件中了
4、category,这个参数是给变量设置一个标签,函数中也可以使用,用法:UPROPERTY(Category=“xxxx”);
5、EditAnywhere,这个参数表示你可以在蓝图细节面板中和世界实例细节面板中设置变量,
  EditDefauletsOnly,这个参数表示你只能在蓝图细节面板中设置变量,而不能在世界实例细节面板上设置变量
  EditInstanceOnly,这个参数表示上一条取反。
6、VisibleAnywhere,这个参数表示你可以在蓝图细节面板中和世界实例细节面板中看到变量,并不能修改
   VisibleDefaultsOnly和EditInstanceOnly这两个从字面意思应该也能看懂,就不一一赘述了。
7、EditFixedSize,这个参数用来描述数组,表示,可以修改数组的值但是并不能修改数组的长度

UENUM()宏,这个宏用来声明枚举,
UENUM (blueprintType)
enum class  type:uint8
{

}

叶里寻秋 | 2018-1-13 12:10:07 | 显示全部楼层
学习学习
回复

使用道具 举报

234981730 | 2018-1-13 13:00:48 | 显示全部楼层
支持   继续
回复 支持 反对

使用道具 举报

user | 2018-1-13 21:38:06 | 显示全部楼层
这个帖子不光是分享我学到的东西,各位大佬看到有不对的地方或者不全的地方麻烦还希望能够指出来
回复 支持 反对

使用道具 举报

qq250418930 | 2018-1-14 16:20:44 | 显示全部楼层
学习了,非常感谢
回复 支持 反对

使用道具 举报

gyyp705715 | 2018-1-15 08:46:05 | 显示全部楼层
多谢分享
回复

使用道具 举报

pdsmgyg | 2018-1-19 14:53:53 | 显示全部楼层
谢谢分享,受教了
回复 支持 反对

使用道具 举报

孤独小码农 | 2018-4-8 14:00:05 | 显示全部楼层
大佬带上示范代码会更好理解
回复 支持 反对

使用道具 举报

user | 2018-6-11 16:24:00 | 显示全部楼层
孤独小码农 发表于 2018-4-8 14:00
大佬带上示范代码会更好理解

如果是创建类,你大可以直接在虚幻编辑器中创建,UE会自动帮你创建对应的宏
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

25

主题

120

回帖

768

积分

初阶编码师

积分
768