Skip to content
On this page

猹引擎

GUI - 页面与动画联动

这页解决什么问题

让页面操作触发模型或实体动画,形成“点了就有演出”的效果。

联动目标

页面事件联动动作
打开活动页播放大厅方块动画
点击开始战斗播放 Boss 登场动画
任务完成播放奖励展示动画

不写代码版做法

  1. 给每个页面事件定义一个联动动作名。
  2. 页面上行动作后,服务端触发模型或实体动画。
  3. 服务端下行回执,页面给玩家提示。

页面触发模板

js
async function triggerBossIntro(entityId) {
  await ChaEngine.sendToServer('ui.action', {
    action: 'boss_intro',
    body: {
      entityId,
      animation: 'intro'
    }
  });
}

回执模板

js
ChaEngine.onServerData((packet) => {
  if (packet.channel !== 'ui.notice') {
    return;
  }

  const data = JSON.parse(packet.data || '{}');
  if (data.action === 'boss_intro' && data.code === 0) {
    showToast('Boss 演出已触发');
  }
});

客户常见错误

  1. 页面动作名和动画名不对应。
  2. 页面提示成功,但实体 ID 写错导致没演出。
  3. 演出太频繁,玩家重复触发导致刷屏。