虚幻中的c++(持续更新)
文章目录
- 虚幻中的c++
- UPROPERTY
- 参数
- UFUNCTION
- 参数
虚幻中的c++
UPROPERTY
是虚幻中用于声明属性的宏,它用于标记某个属性是一个虚幻托管的属性,并且可以在编辑器中进行访问和操作。其提供了一系列参数,用于定义属性的各种行为,例如是否可编辑、是否可序列化等。
参数
EditAnywhere
:允许在编辑器中编辑该属性,包括蓝图类及其在关卡中的实例。EditDefaultsOnly
:只能在蓝图类中修改,实例中无法显示也无法修改。BlueprintReadWrite
:允许在蓝图的EventGraph
中读写该属性。VisibleAnywhere
:在编辑器中显示该属性,但不允许编辑。Transient
:该属性不会被序列化保存,通常用于临时数据或不希望被保存的数据。Category
:指定在编辑器中显示的该属性所属的分类。Meta
:可以用来设置一些元数据,如文档、关键字等,meta=(AllowPrivateAccess="true")
允许私有属性在编辑器中进行编辑。Replicated
:属性在网络中可以进行复制。
UFUNCTION
是虚幻中用于声明函数的宏,它用于标记某个函数是一个虚幻托管的函数,并且可以在编辑器中进行访问和操作。其提供了一系列参数,用于定义函数的属性和行为,例如是否是蓝图可调用的、是否可在网络中复制等。
参数
BlueprintCallable
:允许在蓝图中调用该函数。BlueprintPure
:声明该函数为纯函数,即不会修改对象的状态。BlueprintImplementableEvent
:声明该函数的具体实现逻辑完全在蓝图中,这样可以将底层逻辑放在c++,而将易于修改和设计的逻辑交给蓝图,从而减少c++的编译次数。
例如,角色移动过程中受到攻击时,可能需要播放一个特定的受伤动画或者音效。这个时候,移动这种复杂且很少修改的逻辑放在c++中,而播放动画以及音效的部分则可以通过BlueprintImplementableEvent
提取成函数在c++中进行调用,实现则放在蓝图中交给设计师来快速迭代。Category
:指定在编辑器中显示的该函数所属的分类。Meta
:可以用来设置一些元数据,如文档、关键字等。Server**
、Client
、Reliable
:用于网络功能,指定该函数在服务器端、客户端执行,以及指定该函数是否可靠传输。