Skip to content

事件与事件管理 ​

事件能够用来串联工坊里的各种功能逻辑。

事件管理器能够记录当前地图中各个功能发送/接受的事件,并展示它们之间的对应关系。

事件的触发响应 ​

事件可以理解为游戏运行时会发生的一件事情,我们用事件名来指代事件。

当你在触发\接收事件栏里填入一串文本时,就是创建了一个名为xx的自定义事件,系统将会监听该事件的发生,发送信号给其他运行中的模块。

只要一个事件既有发送方,又有接收方,就可以构成一个完整的事件机制,我们能使用事件让不同功能之前互相传递信号。

填写事件参数的界面中,使用蓝色纸飞机标记的是将会发送的事件,粉色纸飞机则是可以接收的事件。

高级设置

常用的三种事件触发方式

这三种事件触发逻辑不仅会在游戏逻辑中经常被用到,在制作流程里也常用于迅速测试动态逻辑的效果。

方法一:事件触发区域

  1. 在组件库中拖出一个事件触发区域,打开高级设置;
  2. 在<进入区域触发事件>里填写事件“开始”;
  3. 打开事件触发区域通用属性里的<游玩时显示>,这样试玩时可以很方便找到该区域;

高级设置

  1. 接下来制作触发效果,给一个组件添加运动器,使运动开启的事件填入“开始”;
  2. 试玩查看效果:控制蛋仔走入触发区域范围时,运动器开启运动。

方法二:蛋码

  1. 打开蛋码,拖出事件积木<计时器到期(循环)>;

  2. 拖出动作积木<发送自定义事件>,在字符串数据栏里填写事件名称“开始”;

    蛋码

  3. 我们可以直接在蛋码中接收事件,拖出事件积木<接受自定义事件(全局)>,再拖出动作积木<发送信息>。

    蛋码

  4. 这样就可以通过蛋码日志里的信息判断事件是否被触发过、触发过几次了。

    蛋码

方法三:界面触发

  1. 在更多中进入编辑界面功能,拖出一个普通的图片控件;
  2. 打开该控件的高级设置,切换到事件页面;
  3. 填写点击触发事件为“开始”;
  4. 接下来制作触发效果,给一个组件添加运动器,使运动开启的事件填入“开始”;
  5. 试玩时点击控件,观察到运动器生效。

也可以使用<使控件显示/隐藏的事件>测试事件是否被成功触发。

全局事件与局部事件 ​

在游戏运行时,有些事件只会影响到触发的玩家,而有些事件则会影响到地图内所有人。

我们把会影响到所有人的事件称为全局事件,只会影响到部分人的称为局部事件。

按照发送方来说,以下事件发送的是附带玩家参数的局部事件,触发事件只会影响到触发事件的玩家:

UI相关事件

  1. 界面控件点击\按下\松开事件
  2. 输入框输入完成
  3. 手势控件滑动事件
  4. 陀螺仪变化事件

……

事件触发区域事件

  1. 进入区域触发事件
  2. 离开区域触发事件

按照接收方来说,有的事件被监听到会引起整个地图的变化,有的事件只影响触发玩家:

一、接收事件后「按事件是否带玩家参数」区分生效范围

事件带玩家参数则只对触发玩家,不带则对全体玩家:

  1. 相机切换器:接收事件切换相机参数;玩家触发只对该玩家,非玩家触发对全体
  2. 天空背景切换:接收事件切换天空
  3. 雾效切换:接收事件切换雾效
  4. 光照切换:接收事件切换光照
  5. 画面色彩切换:接收事件切换色彩
  6. 屏幕效果播放器组件播放屏幕效果事件
  7. 背景音乐切换:接收事件切换/恢复BGM
  8. 任务编辑器所有事件
  9. 剧情对话触发事件

二、接收事件后「只对触发玩家生效」

  1. 剧情动画:接收事件播放\停止动画
  2. 相机切换器:使相机开始/结束切换的事件
  3. UI显隐和操作事件
  4. 物品商店显示事件
  5. 背包显示事件
  6. 剧情对话选项触发事件

三、接收事件后「全局玩家生效」

  1. 运动器:物理运动全局同步,所有玩家可见
  2. 表现器:表现器效果全局同步
  3. 开关切换事件
  4. 技能被动触发事件
  5. 相机轨道运镜事件
  6. 计时器、随机器、创生器等场景组件事件
  7. 剧情对话选项显隐事件

自定义事件相关蛋码 ​

事件发送侧

积木发送目标携带玩家/单位参数主要接收方
发送自定义事件全局发送否<接收自定义事件(全局)>
玩家发送事件全局发送,但附带单位是类似ui事件,可指定部分效果仅对发送玩家生效
发送自定义事件(指定对象)指定单个对象否(对象定位)<接收自定义事件(当前对象)>
向界面发送事件指定玩家的界面(UI)是只会影响指定玩家的界面
向场景界面发送事件指定玩家的场景界面是场景界面控件(触发动画等)

事件接收侧

积木挂载位置接收来源
接收自定义事件(当前对象)当前对象(单位/组件)只接收<发送自定义事件(指定对象>发给该对象的事件
接收自定义事件(全局)全局接收全局发送的自定义事件
接收自定义事件(附带玩家)全局仅接收"角色进出区域/与界面控件互动"的事件
接收界面自定义事件(当前对象)当前对象(UI控件)接收"以当前对象为监听目标发出的界面事件"

事件管理器 ​

在“更多”中点击“事件管理”按钮进入事件管理器界面。

入口

或者,部分事件填写时,能够从事件列表直接跳转到事件管理器界面。

入口

主要界面 ​

事件列表 ​

事件列表可以检索地图当中所有引用过的事件名称。

部分功能相关事件如组件互动、物品背包等存在未接入事件管理的情况,不会显示在事件列表中。

对象列表 ​

可通过点击左侧的“对象列表”按钮呼出,将展示当前地图所有发送/接收了事件的对象及相关属性,选择后将进入该对象的查看界面。

事件查看界面 ​

修改中央事件名后,所有关联对象事件属性的输入值都会替换为新的事件。

工具栏仅对勾选的单位(支持批量勾选)生效:

工具说明
迁移将选中对象事件属性的输入值替换为其他事件
查看跳转到该对象的查看界面,仅单选时可用
删除清空选中对象事件属性的输入值

对象查看界面 ​

选中事件可以查看和删除:

操作说明
查看跳转到该对象的查看界面
删除清空该对象事件属性的输入值

如果事件存在其他发送/接收方,可以展开该事件,查看该事件在其他组件或功能中的属性,支持跳转到发出/接收该事件的组件高级设置界面和使用删除清除该事件的引用。

入口