游戏对象行为脚本基类,提供完整的事件处理和生命周期管理
继承自 BaseScript,为游戏对象添加丰富的事件响应能力,包括:
// 创建一个基础的游戏脚本class PlayerScript extends Script<Player> { onAwake() { console.log('玩家对象已唤醒'); } onClick(e: LikoPointerEvent) { console.log('玩家被点击了'); this.target.position.x += 10; } onCollisionStart(collision: ICollision) { console.log('玩家撞到了:', collision.other); // 根据碰撞法线计算反弹 const normal = collision.contact.normal; this.target.velocity.x = -normal.x * 100; } onKeyDown(e: KeyboardEvent) { if (e.key === 'Space') { this.target.jump(); } } onSignal(type: string, params?: Record<string, unknown>) { if (type === 'gameOver') { this.target.visible = false; } }}// 将脚本附加到游戏对象const player = new Player();const script = new PlayerScript();player.addScript(script); Copy
// 创建一个基础的游戏脚本class PlayerScript extends Script<Player> { onAwake() { console.log('玩家对象已唤醒'); } onClick(e: LikoPointerEvent) { console.log('玩家被点击了'); this.target.position.x += 10; } onCollisionStart(collision: ICollision) { console.log('玩家撞到了:', collision.other); // 根据碰撞法线计算反弹 const normal = collision.contact.normal; this.target.velocity.x = -normal.x * 100; } onKeyDown(e: KeyboardEvent) { if (e.key === 'Space') { this.target.jump(); } } onSignal(type: string, params?: Record<string, unknown>) { if (type === 'gameOver') { this.target.visible = false; } }}// 将脚本附加到游戏对象const player = new Player();const script = new PlayerScript();player.addScript(script);
脚本唯一标识符,通常由编辑器指定
脚本标签,用于快速识别和查找
脚本是否已被激活(添加到场景后触发)
脚本是否已被销毁
脚本是否启用,禁用时不执行更新且触发 onDisable
目标节点所在的场景引用(建议缓存为局部变量以提高性能)
目标节点所在的舞台引用
脚本挂载的目标节点,设置后触发 onCreate
激活脚本(第一次执行),回调 onAwake
销毁脚本实例
销毁后脚本将不再可用,系统会自动:
注意: 如果使用了 Timer.system 的监听,需要在 onDestroy 中手动清除
脚本第一次被激活时触发的回调函数
只会触发一次,此时:
当绑定的目标对象被点击时触发
指针事件对象,包含点击位置、按钮信息等
当目标对象结束与其他刚体的物理碰撞时触发
碰撞信息对象,包含分离的碰撞对象信息
当目标对象开始与其他刚体发生物理碰撞时触发
碰撞信息对象,包含碰撞对象和接触点信息
当脚本的 target 被设置时触发的回调函数
生命周期中的第一个回调,此时:
脚本被销毁时触发的回调函数
用于清理资源和释放引用,如:
注意: 系统会自动清理大部分监听,但使用 Timer.system 的监听需要手动清除
当脚本被禁用时触发的回调函数
当脚本被启用时触发的回调函数
当键盘按键被按下时触发
标准键盘事件对象,包含按键信息、修饰键状态等
当键盘按键被抬起时触发
当指针在目标对象上按下时触发
指针事件对象,包含按下位置、按钮类型等信息
当指针在目标对象上移动时触发
指针事件对象,包含移动位置、移动增量等信息
当指针在目标对象上抬起时触发
指针事件对象,包含抬起位置、按钮类型等信息
当场景中的其他对象发送信号时触发
信号类型标识符,用于区分不同的信号
Optional
可选的信号参数对象,用于传递额外数据
当舞台(全局画布)被点击时触发
指针事件对象,包含全局点击位置信息
当在舞台(全局画布)上按下指针时触发
指针事件对象,包含全局按下位置信息
当在舞台(全局画布)上移动指针时触发
指针事件对象,包含全局移动位置信息
当在舞台(全局画布)上抬起指针时触发
指针事件对象,包含全局抬起位置信息
每帧更新时触发的回调函数
距离上一帧的时间间隔(毫秒)
用于实现脚本的主要逻辑,如:
设置单个属性值
属性名
属性值
批量设置脚本属性
要设置的属性键值对
当前实例,支持链式调用
向同场景的其他脚本发送信号
信号类型标识符
可选的信号参数对象
发送的信号可以在同场景其他脚本的 onSignal 方法中被监听到,用于脚本间通信。
注意:
执行脚本的更新逻辑
系统每帧调用一次,用于更新脚本状态。
执行条件:
游戏对象行为脚本基类,提供完整的事件处理和生命周期管理
继承自 BaseScript,为游戏对象添加丰富的事件响应能力,包括:
Example
Remarks