互动性的网站,如何写一份食品的网站建设规划,免费软件 全免费,上海公司注册流程及费用标准3-3 虚幻游戏框架拆解#xff0c;游戏规则基础_哔哩哔哩_bilibili
目录
1.游戏架构
2.事件分发器
2.1UI控件中的事件分发器
2.2Actor蓝图中的事件分发器 2.2.1动态决定Actor的分发事件
2.2.2父类中定义事件分发器#xff0c;子类实现事件分发器
2.3组件蓝图中实现事件…3-3 虚幻游戏框架拆解游戏规则基础_哔哩哔哩_bilibili
目录
1.游戏架构
2.事件分发器
2.1UI控件中的事件分发器
2.2Actor蓝图中的事件分发器 2.2.1动态决定Actor的分发事件
2.2.2父类中定义事件分发器子类实现事件分发器
2.3组件蓝图中实现事件分发器
3.蓝图接口 1.游戏架构
大概记住流程就行了理解最重要 2.事件分发器
理解事件分发器需要从两个角度出发 1.事件分发器的声明者调用者声明事件分发器并决定调用事件的时机但不负责事件内部逻辑 2.事件分发器的实现者不决定什么时候调用事件只负责实现事件逻辑
事件分发器的声明者和调用者通常是一个对象且和事件分发器的实现者往往是分离的因为如果一个蓝图即是声明者调用者又实现者那么事件分发器往往不如直接声明、实现、调用一个函数直接。
事件分发器主要有三种使用场景
1.UI控件中 让自己设计的UI控件能够实现一些功能点击功能值变更功能等等。 声明者调用者UI控件负责调用时机 实现者使用UI控件的人负责事件的具体实现逻辑
2.Actor蓝图中 2.1在程序运行时动态的给Actor分发事件Actor定义时负责调用时机运行时负责事件实现 2.2父类中定义事件分发器子类实现事件分发器
3.组件蓝图中 组件负责定义事件的调用时机使用组件的负责实现具体的事件逻辑 2.1UI控件中的事件分发器
设计通用按钮并让通用按钮拥有点击事件案例可参考20.UE5UI预构造开始菜单事件分发器_ue5 菜单-CSDN博客
2.2Actor蓝图中的事件分发器 2.2.1动态决定Actor的分发事件 案例 例如现在有一款养宠物的游戏有两个难度普通困难。 当难度时普通时饥饿值为0后5秒之后宠物死亡。 当难度为困难时饥饿值为0后宠物直接死亡。
首先创建蓝图Actor命名为我的宠物添加饥饿值变量并在事件开始时声明一个每5秒扣除5点饥饿值的定时器事件当生命值归零后调用事件分发器中的当饥饿小于0的事件。我的宠物作为事件分发器的声名者和调用者。 本来应该在游戏实例中添加游戏难度并且绑定不同难度的当饥饿小于0时的实现逻辑。但是为了方便演示就在我的玩家控制器中进行演示了。
按1为普通难度当饥饿小于0时就延迟5秒死亡 按2就是困难难度当饥饿小于0的时候直接死亡 2.2.2父类中定义事件分发器子类实现事件分发器 还有一种情况就是在父类中定义事件分发器子类中实现事件分发器 案例我的宠物中有一个子蓝图为骆驼当饥饿值归零时可以无视游戏难度依旧坚持5秒钟死亡
创建我的宠物子蓝图并命名为骆驼 骆驼这个宠物在开始事件中分配当饥饿小于0的事件 回到我的控制器蓝图按3创建骆驼这个时候无论游戏难度是多少骆驼都能坚持5秒死亡。 这个案例主要是理解在游戏运行中动态分配事件以及子类分配父类的事件类似重载。
2.3组件蓝图中实现事件分发器
创建我的组件蓝图 为组件添加事件分发器 那么所有添加了我的组件的蓝图都可以实现我的组件事件蓝图。 3.蓝图接口
接口就好像电脑上的USB接口一样 接口只管定义尺寸和规格参数输入所有手机厂商U盘厂商鼠标键盘厂商都需要按照这个尺寸和规格设计接口才能接入到电脑上但是具体的实现功能不同比如说手机的USB线可以传输数据和充电U盘可以快速读写鼠标键盘可以通过USB和电脑进行交互等等。
接口只管定义规格具体接口的实现方式交给蓝图Actor进行实现。
案例 实现一个功能按数字键盘1让场上所有的灯光打开。
创建蓝图接口 在接口中添加一个函数函数有一个输入浮点类型的开灯几秒 创建灯光
创建Actor蓝图命名为我的灯添加点光源组件并设置强度和颜色 将点光源的默认可视设置为关闭 在我的灯蓝图中打开类设置添加接口我的接口 设置灯的可视性并延迟打开灯几秒后进行可视性的关闭 接下来实现按1打开灯
打开我的控制器蓝图
获取场景中所有实现了我的接口的Actor并遍历出所有的Actor并调用打开灯的接口开灯事件可以设置为5秒。 将我的灯拖入场景中运行游戏按数字键1灯光打开并在5秒中后关闭