# Script组件

Script是所有脚本组件的基类,例如,Annotation组件、OrbitControl组件等。通过扩展脚本组件可以为实体添加不同的逻辑控制,如何扩展脚本组件,详见教程"如何开发一个脚本组件"

import { Script } from '@tx3d/core';

// 扩展一个脚本
class MyScript extends Script {

    onUpdate( timeSinceLastFrame ) {

        // TODO:帧更新

    }

}

// 创建一个空实体
const entity = engine.createEntity();

// 添加脚本组件
entity.addComponent( MyScript );
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# 生命周期

脚本组件为开发人员提供了丰富的生命周期回调函数,只需要定义特点的回调函数,引擎就会在特点的时机自动执行相关脚本,不需要手动调用它们。当前提供的生命周期回调函数如下图所示:

avatar

# 属性

🌏 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'事件回调。

提示

物理模块是按照固定时长进行更新的,因此每一帧都会触发多次onPhysicsUpdateonTriggerStayonCollisionStay回调。

Last Updated: 4/23/2023, 5:12:23 PM