# Script组件
Script是所有脚本组件的基类,例如,Annotation组件、OrbitControl组件等。通过扩展脚本组件可以为实体添加不同的逻辑控制,如何扩展脚本组件,详见教程"如何开发一个脚本组件"。
import { Script } from '@tx3d/core';
// 扩展一个脚本
class MyScript extends Script {
onUpdate( timeSinceLastFrame ) {
// TODO:帧更新
}
}
// 创建一个空实体
const entity = engine.createEntity();
// 添加脚本组件
entity.addComponent( MyScript );
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 生命周期
脚本组件为开发人员提供了丰富的生命周期回调函数,只需要定义特点的回调函数,引擎就会在特点的时机自动执行相关脚本,不需要手动调用它们。当前提供的生命周期回调函数如下图所示:
# 属性
🌏 started 脚本是否已启用,只读。
# 接口
🌏 onAwake 唤醒脚本回调,首次激活时调用,调用一次。
🌏 onEnable 启用脚本回调,调用多次。
🌏 onStart 开始执行脚本回调,首次帧循环时调用,调用一次。
🌏 onUpdate 帧更新回调,逐帧调用。
🌏 onLateUpdate onUpdate调用后回调,逐帧调用。
🌏 onDisable 禁用脚本回调,调用多次。
🌏 onDestroy 销毁脚本回调,调用一次。
🌏 onPhysicsUpdate 物理更新回调,逐帧调用。
🌏 onTriggerEnter 触发进入回调,调用多次。
🌏 onTriggerStay 触发停留回调,逐帧调用。
🌏 onTriggerExit 触发离开回调,调用多次。
🌏 onCollisionEnter 碰撞进入回调,调用多次。
🌏 onCollisionStay 碰撞停留回调,逐帧调用。
🌏 onCollisionExit 碰撞离开回调,调用多次。
🌏 onPointerDown 'pointerdown'事件回调。
🌏 onPointerUp 'pointerUp'事件回调。
🌏 onPointerMove 'pointerMove'事件回调。
🌏 onPointerCancel 'pointercancel'事件回调。
🌏 onClick 'click'事件回调。
🌏 onDblClick 'dblclick'事件回调。
🌏 onWheel 'wheel'事件回调。
🌏 onKeyDown 'keydown'事件回调。
🌏 onKeyUp 'keyup'事件回调。
🌏 onCameraChanged 'camerachanged'事件回调。
🌏 onResize 'resize'事件回调。
提示
物理模块是按照固定时长进行更新的,因此每一帧都会触发多次onPhysicsUpdate、onTriggerStay、onCollisionStay回调。