脚本组件
语法及运行环境
DTwinScript 采用JavaScript 语法解析执行,支持浏览器上下文内的原生函数。
DTwin的生命周期流转
首先,我们需要来了解一下 DTwin 的生命周期流转,以及其中涉及的关键接口。

(1)系统初始化:
会通过 init() 方法和 start() 方法,进行整个播放器/编辑器的初始化和启动。在此阶段,各种资源会逐步被加载,各模块及其子系统将会被进行初始化。
在系统完成初始化后,会选择默认的场景、摄影机进行加载,进入「场景加载」阶段。
(2)场景加载阶段:
系统会解析整个场景对象树、组件结构,对其进行组装。
方法会在树形结构绑定到父级时调用,以通知当前对象父子结构的变化;
方法会在树形结构绑定到场景时调用,以通知当前对象成功加入到渲染树;
方法会在上下文注册时调用,以通知当前对象成功加入到渲染引擎;
在场景完成加载后,所有的功能开始正常运行,会开始收到 Parameter 参数变更。
(3)逐帧渲染阶段:
当渲染启动后,引擎会尽力保证以最高不超过 60 FPS 的频率进行动画绘制。其中每次绘制时,都会调用对象的 update() 方法。
(4)参数变更阶段:
当参数发生变更时,会调用onParameterUpdate() 方法,执行变更回调逻辑。
系统为了方便常用方法的调用,提供了几个内置参数的快捷调用:
:对象被点击时调用,需要绑定交互组件;
:对象被鼠标滑过时调用,需要绑定交互组件;(性能影响较大,建议不使用)
:碰撞开始时调用;
:碰撞结束时调用;
:碰撞时持续调用。
(5)场景卸载阶段:
同场景初始化,在场景切换、系统关闭时,会执行场景卸载逻辑,调用对应的 onParentUnbind() 、onSceneUnbind() 、onContextUnbind() 。
(6)系统停机:
当系统停机时,会执行对应的 shutdown() 方法,进行最终的关闭与资源回收。
脚本的创建与编辑
(1)脚本资源:
在平台编辑态资源视窗内的第三栏为脚本资源,已完成编辑的脚本,会展示在视窗内。点击“+”按钮,打开脚本编辑器,并进入新增脚本编辑模式。
(2)脚本编辑:
给脚本命名并录入脚本内容。点击“确认”或“取消”来保存脚本或放弃当前脚本。

脚本的挂载
首先我们需要先将目标对象挂载脚本组件,在脚本组件属性配置区域作如下配置内容:
(1)“脚本”,通过下拉框选择已经创建并完成编辑的脚本;
(2)“执行范围”默认为运行时(即运行态生效),编辑器(编辑态生效),全部(所有状态生效);
(3)“扩展参数”可以设置脚本内用到的额外参数。
