Unreal中Interface接口的使用-创新互联
通过继承Unreal中的接口可以使不同的类有某种共同特性,这里记录一下接口的使用方式。Unreal中的接口分为两种:C++接口和蓝图接口,C++接口可在蓝图中使用;蓝图中的接口不能直接在C++中使用,这里探究一下他们的关系:
1.C++的接口在C++中使用:
新建C++类,继承UnrealInterface:
![](/upload/otherpic7/7770f74dfafbf0c0979cbb198627c096.jpg)
接口中可以声明虚函数或者纯虚函数:
![](/upload/otherpic7/978cec0babecffab291b87df4a7990e9.jpg)
赋值为0即为纯虚函数,子类必须实现纯虚函数:
![](/upload/otherpic7/1da3d68d879b4a0a4c70ac1e39c75019.jpg)
![](/upload/otherpic7/426fc11cfcd9ff6943c38c7dbcf5ca2d.jpg)
![](/upload/otherpic7/0a5b4f1542f212e01a418c53da9b3b8a.jpg)
非纯虚函数可以在父类中实现,子类自由选择是否重写:
![](/upload/otherpic7/d34991004efb2f03f0c20342161dfa3a.jpg)
调用:
![](/upload/otherpic7/7329f34778b18326b9b9510659138391.jpg)
![](/upload/otherpic7/7e7b4fd9c4ecb7fe604d698c80c94e80.jpg)
2.蓝图中使用蓝图接口:
新建蓝图接口,继承BlueprintInterface:
![](/upload/otherpic7/68eeef7e611a7fa4fa44564c32d32bc1.jpg)
声明接口函数TestInterface:
![](/upload/otherpic7/60ae0d8a7cfe7830a7fea7157eba3281.jpg)
在蓝图Actor中添加蓝图接口TestBlueprintInterface:
![](/upload/otherpic7/cf6b4d3667e65f1754042f75f7a3c4bb.jpg)
actor蓝图自动从接口中生成事件,可以在此事件中编写要执行的逻辑:
![](/upload/otherpic7/f68f500acc08b59f5d5e2e13018cbd26.jpg)
![](/upload/otherpic7/f97a7d248d466dfb04390e95e70e5c9a.jpg)
3.在蓝图中使用C++接口,需要给接口函数添加BlueprintImplementableEvent或者BlueprintNativeEvent和BlueprintCallable标记:
![](/upload/otherpic7/7470649cedb34a9979a2bbe43b84e8b6.jpg)
当C++Actor继承此接口,然后蓝图Actor继承C++Actor时,接口位于继承接口面板中:
![](/upload/otherpic7/cdab94dd28f7b45473b94b9fb50ee350.jpg)
此时可以选择是否重写父类中的BlueprintNativeEvent。
当蓝图actor直接实现C++接口时,接口位于ImplementedInterface面板中,并需要重写接口函数:
![](/upload/otherpic7/9d51a632b9e51b76d4ba544e1b1f898d.jpg)
![](/upload/otherpic7/4dbf6187230e0ac3022f2c43cf835b17.jpg)
注意,蓝图类通过上面这种方式的接口实现,无法在C++中直接调用,只能判断当前类是否实现了此接口,而不能转换接口类型成功:
![](/upload/otherpic7/1b2ea1b348a524bfb4d3f58cbbf0c1c2.jpg)
![](/upload/otherpic7/69da2b3fed85fe994835244839337db4.jpg)
纯蓝图类实现的接口在C++中只能通过GetClass()->ImplementsInterface(U接口类:StaticClass)查询,而不能转换接口类型成功,也就是上面红框内不会执行;而C++或继承C++类实现接口的类如CustomActor可以转换成功。注意,C++调用给蓝图用的函数,要通过Excute_函数名调用。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章名称:Unreal中Interface接口的使用-创新互联
文章起源:http://pwwzsj.com/article/djoiii.html