UCLASS宏

63 阅读2分钟

image.png

   UCLASS(ClassGroup=(MO)
 //BlueprintType     可以被蓝图访问,默认
 //Blueprintable     可以被蓝图继承,默认
 //NotBlueprintable  不可以被蓝图继承
 //Abstract          标记后,标明这个类为抽象类,只用于继承,不能被实例化
//Const             标记后,表示这个类中的所有变量和函数都是常函数

//UCLASS(Config=文件名)
//Config            将类内的成员变量数据信息保存到本地配置文件  
//需要显式调用函数SaveConfig使用,并且配合UPROPERTU宏操作

// UCLASS(ClassGroup=(MO)
//ClassGroup        当这个类作为组件时,用于分组     

image.png

UFUNCTION(Blueprint)
void Fun();

//BlueprintCallable表明该函数可以被蓝图调用
//注意:如果韩式参数是引用类型,则在蓝图中调用会被当做输出针脚
//如果传入的参数是const修饰的引用类型,则在蓝图中被当做输入针脚
//Category 表明此函数在蓝图中的分类
UFUNCTION(BlueprintCallable,Category="MO|Ca")
void Fun1(int32 &F,const int32 LF);

image.png

    //BlueprintImplementableEvent
//1.必须放在公有域受保护的访问域中
//2.不能C++中定义函数
//3.本质上,它就是相当于C++里面的纯虚函数。 virtual void Fun2() = 0;
//4.纯C++中纯虚函数必须在子类中实现
//5.继承自这个类的蓝图子类,不需要一定实现
//6.如果有返回值,在蓝图中则作为函数使用
//7.如果没有返回值,在蓝图中作为事件使
//8.如果没有返回值,有基本数据类型参数,则作为事件使用,基本数据类型参数作为输入参数
//9.如果没有返回值,有基本数据类型或自定义数据类型引用作为参数,则作为函数使用
//10.如果没有返回值,有自定义数据类型参数,则编译不过
UFUNCTION(BlueprintImplementableEvent, BlueprintCallable)
	void Fun2();
    void Fun3(int32 N);

 

image.png

 //BlueprintNativeEvent
	//1.此标记可以标注函数可在蓝图中被重写,并且具备在C++中有另一个标记函数
	//2.如果蓝图重写此函数。则函数实现在蓝图,如果蓝图没有重写此函数
	//则函数实现在(函数名_Implementation)上。
	//3.蓝图中实现后,可以右键函数节点
	//选择 add call to parent function可以调用父类函数逻辑
	UFUNCTION(BlueprintNativeEvent, BlueprintCallable)
	void Fun4(int32 Num);
	void Fun4_Implementation(int32 Num);

	//BlueprintPure
	//将C++中的函数,在蓝图调用的时候标为纯函数,没有逻辑引脚
	UFUNCTION(BlueprintPure, BlueprintCallable)
	int32 GetValue();