什么是委托?我们先来看看官方的解释:委托 是一种泛型但类型安全的方式,可在C++对象上调用成员函数。可使用委托动态绑定到任意对象的成员函数,之后在该对象上调用函数,即使调用程序不知对象类型也可进行操作。复制委托对象很安全。你也可以利用值传递委托,但这样操作需要在堆上分配内存,因此通常并不推荐。请尽量通过引用传递委托。虚幻引擎共支持三种类型的委托:单播委托,多播委托,和动态委托。 光是看定义可能不是很好理解,我们知道在计网中,单播和多播的意思是主机之间的一对一或者多对多通讯,在UE4中我们没有主机,所以并不是计网中的意思单播委托的意思就是可以使用一个Actor事件绑定到另外一个Actor某个函数
目录添加Steam插件和成就设置测试Steam插件能否启用打包发行版还需要的操作游戏上传!桌面图标SteamDRM反盗版告知EPIC、编写EULA、添加Credits更新游戏卖点私货添加Steam插件和成就设置官网的参考资料很重要:OnlineSubsystemSteam|虚幻引擎文档本人使用的是UE4.27.2,Windows11操作系统。首先,在ue4项目的插件设置中,勾选OnlineSubsystem 和 OnlineSubsystemSteam,然后重启编辑器。然后在项目文件夹下的Config/DefaultEngine.ini添加以下内容:[/Script/Engine.GameEn
目录添加Steam插件和成就设置测试Steam插件能否启用打包发行版还需要的操作游戏上传!桌面图标SteamDRM反盗版告知EPIC、编写EULA、添加Credits更新游戏卖点私货添加Steam插件和成就设置官网的参考资料很重要:OnlineSubsystemSteam|虚幻引擎文档本人使用的是UE4.27.2,Windows11操作系统。首先,在ue4项目的插件设置中,勾选OnlineSubsystem 和 OnlineSubsystemSteam,然后重启编辑器。然后在项目文件夹下的Config/DefaultEngine.ini添加以下内容:[/Script/Engine.GameEn
首先说明一下关于UE4中一些对象的名字前缀吧,虽然这个不是这一关于Actor的内容,但是后续都要用到,所以就先说明白。关于Class类前缀:派生自 Actor 的类前缀为A,比如AController。派生自 Object 的类前缀为U,比如UComponent。派生自 SWidget(SlateUI)的类前缀为S,比如SButton Enums 的前缀为E,比如EFortificationType。Interface 类的前缀通常为I,比如IAbilitySystemInterface。Template 类的前缀为T,比如TArray。其余类的前缀均为字母F,比如FVector。--好了,现
首先说明一下关于UE4中一些对象的名字前缀吧,虽然这个不是这一关于Actor的内容,但是后续都要用到,所以就先说明白。关于Class类前缀:派生自 Actor 的类前缀为A,比如AController。派生自 Object 的类前缀为U,比如UComponent。派生自 SWidget(SlateUI)的类前缀为S,比如SButton Enums 的前缀为E,比如EFortificationType。Interface 类的前缀通常为I,比如IAbilitySystemInterface。Template 类的前缀为T,比如TArray。其余类的前缀均为字母F,比如FVector。--好了,现
我不会抛下这个残破的世界在现代游戏引擎中,有一个“Tag”的概念,无论是在Unreal还是Unity中,他们都有大同小异的tag实现。此篇随笔以ActorTag举例,简单讲解一些常见情况下它的妙用,后续我还会更新例如网络同步中的FastReplication使用GameplayTag加快复制过程等其他内容,此文章只是随笔,讲解不好,也不全面,还请各位读者理解。首先,我们要先了解GameplayTag是什么样的东西,这里贴出UnrealEngineDocumentation上的解释。GameplayTag可以添加到任何项目中,将对象与Tag相关联,可以用于为您的项目识别、匹配、分类或过滤它们。很
我不会抛下这个残破的世界在现代游戏引擎中,有一个“Tag”的概念,无论是在Unreal还是Unity中,他们都有大同小异的tag实现。此篇随笔以ActorTag举例,简单讲解一些常见情况下它的妙用,后续我还会更新例如网络同步中的FastReplication使用GameplayTag加快复制过程等其他内容,此文章只是随笔,讲解不好,也不全面,还请各位读者理解。首先,我们要先了解GameplayTag是什么样的东西,这里贴出UnrealEngineDocumentation上的解释。GameplayTag可以添加到任何项目中,将对象与Tag相关联,可以用于为您的项目识别、匹配、分类或过滤它们。很
1.非UObject对象即非UObject常规C++对象,创建销毁不赘述。但可以用智能指针;从而不用关心销毁逻辑:TSharedPtrMyObj=MakeShareable(newClassA());智能指针转裸指针:ClassA*MyObjPtr=MyObj.Get(); 智能指针情况下,当别的类引用该对象,并要知道引用的字段是否=nullptr,则需使用弱指针(TWeakPtr):classClassB{public:TWeakPtrClassAReference;};ClassBClassBObj;ClassBObj.ClassAReference=MyObj;//...if(Class
1.非UObject对象即非UObject常规C++对象,创建销毁不赘述。但可以用智能指针;从而不用关心销毁逻辑:TSharedPtrMyObj=MakeShareable(newClassA());智能指针转裸指针:ClassA*MyObjPtr=MyObj.Get(); 智能指针情况下,当别的类引用该对象,并要知道引用的字段是否=nullptr,则需使用弱指针(TWeakPtr):classClassB{public:TWeakPtrClassAReference;};ClassBClassBObj;ClassBObj.ClassAReference=MyObj;//...if(Class
近期封装输入相关逻辑,简单归纳下。 蓝图实现内容界面右键Miscellaneous->ForceFeedbackEffect,创建力反馈对象并填写相关参数:然后在蓝图中用SpawnForceFeedbackatLocation调用这个力反馈配置文件,或是创建ForceFeedback组件,根据角色是否进入手柄震动区域来进行力反馈响应。 C++实现C++部分的手柄力反馈,包括PS手柄的亮灯颜色等,都可以在PlayerController中直接设置。//#include"GameFramework/ForceFeedbackEffect.h"//#include"Kismet/GameplaySt