Skip to content

动作控制器

javascript
const entity = world.querySelector('#npc')
const entityMotionControl = entity.motion; // GameMotionController
const motion = entityMotionControl.loadByName('hello'); // GameMotionHandler 'hello'指代'npc'实体上的其中一个motion动作名称
motion.onFinish(() => {
  console.log('Motion End');
});
motion.play()

方法

loadByName()

加载特定动作或动作序列,并返回对应的动作对象

输入参数

参数必填默认值类型说明
configsstring | GameMotionConfig[] | GameMotionClipConfig动作名称或配置

定义于 #L11093


pause()

暂停实体上的动作播放

定义于 #L11097


resume()

恢复实体上的动作播放

定义于 #L11101


setDefaultMotionByName()

设置默认动作

  • 没有其他动作在播放的情况下,默认动作会在游戏运行时自动循环播放
  • 调用此函数时,如当前处于默认动作执行状态,则将打断旧默认动作,播放新的默认动作
  • 动作名不存在时,此方法不产生任何效果,并抛出包含实体、模型与动作信息的错误

输入参数

参数必填默认值类型说明
motionNameundefined | string动作名称
javascript
const entity = world.querySelector('#npc')
entity.motion.setDefaultMotionByName('FirstMotion');
entity.motion.setDefaultMotionByName(''); // 报错,不存在对应动作
entity.motion.setDefaultMotionByName(); // 设置默认动作为空,即不播放默认动作

定义于 #L11105

接口

GameMotionConfig

动作配置

参数类型说明
iterationsnumber输入Infinity就是无限循环,此时会覆盖掉默认动作,能cancel或者播放新的动作覆盖。可选项,默认 1 次
namestring动作名字

定义于 #L11081


GameMotionClipConfig

动作序列配置

参数类型说明
iterationsnumber输入Infinity就是无限循环,此时会覆盖掉默认动作,能cancel或者播放新的动作覆盖。可选项,默认 1 次
motions(string | GameMotionConfig)[]可填写指定动作名或motion动作配置

定义于 #L11085