猹引擎
GUI - 页面与动画联动
这页解决什么问题
让页面操作触发模型或实体动画,形成“点了就有演出”的效果。
联动目标
| 页面事件 | 联动动作 |
|---|---|
| 打开活动页 | 播放大厅方块动画 |
| 点击开始战斗 | 播放 Boss 登场动画 |
| 任务完成 | 播放奖励展示动画 |
不写代码版做法
- 给每个页面事件定义一个联动动作名。
- 页面上行动作后,服务端触发模型或实体动画。
- 服务端下行回执,页面给玩家提示。
页面触发模板
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 演出已触发');
}
});客户常见错误
- 页面动作名和动画名不对应。
- 页面提示成功,但实体 ID 写错导致没演出。
- 演出太频繁,玩家重复触发导致刷屏。
猹件开发组