Skip to content

THING.UE.RuntimeEditor API 文档

前言

THING.UE.RuntimeEditor提供了一些基础配置和API,可允许开发者关闭系统默认编辑界面和操作,自定义编辑逻辑。

基本功能配置

ThingUE\Content\Scripts\configs目录下,找到runtimeeditor_setting.js,可对场景编辑工具的相机操控模式、编辑面板显隐等进行配置

javascript
{
    //设置编辑器的相机操控模式
    //1:thingjs的操作模式
    //2:UE编辑器的操作模式
    THING.UE.RuntimeEditor.EDITOR_ORBIT_MODE = 1;
    //场景树显示模型
    //1:Thingjs模式,只显示Thing对象
    //2:UE原生模式,显示所有的Actor对象
    THING.UE.RuntimeEditor.EDITOR_TREE_VIEW_MODE = 1;
    //设置解析深度
    //Earth--Province--City--Campus--Building--Floor--Room--Thing
    THING.UE.RuntimeEditor.PARSE_DEPTH_START = "Campus";
    THING.UE.RuntimeEditor.PARSE_DEPTH_END = "Thing";
    //设置是否显示编辑器自带UI面板
    THING.UE.RuntimeEditor.SHOW_EDITOR_WIDGET = false;
    //是否启用键盘控制
    THING.UE.RuntimeEditor.ENABLE_KEYBOARD_CTONTORL = false;
     //设置可允许编辑的对象
    THING.UE.RuntimeEditor.ALLOW_EDIT_TAGS = ["RuntimeCreate"];
}
  • EDITOR_ORBIT_MODE 相机操控模式,分两种:ThingJS操控模式和UE编辑器模式
  • PARSE_DEPTH_START & PARSE_DEPTH_END 场景树的显示深度 PARSE_DEPTH_START="Campus",PARSE_DEPTH_END="Thing",场景树将显示园区、建筑、楼层和点位 如果PARSE_DEPTH_START="Campus",PARSE_DEPTH_END="Building",场景树将只显示初始场景中的园区和楼层和自定义创建的点位
  • SHOW_EDITOR_WIDGET 是否显示编辑工具自带的编辑界面
  • ENABLE_KEYBOARD_CTONTORL 是否启用编辑工具的键盘操作
  • ALLOW_EDIT_TAGS 可编辑对象过滤:未添加上述Tag的对象只能在场景树中查看,但无法选中和编辑

编辑工具API

启用编辑功能

javascript
THING.UE.RuntimeEditor.enable = true;

关闭编辑功能

关闭编辑功能时会自动保存

javascript
THING.UE.RuntimeEditor.enable = false;

监听摆放点位的事件

javascript
THING.UE.RuntimeEditor.on('create', (obj) => {
    console.log(obj);
    /*这里对点位进行相关操作
    //.......
    */
}, 'oncreate');

取消监听摆放点位的事件

javascript
THING.UE.RuntimeEditor.off('create','oncreate');

创建点位

这里可以自定义创建点位的组合键,下面示例中按住alt键的情况下,点击鼠标左键在鼠标位置创建点位

javascript
let _alt;
app.on('keydown', ev => {
    if (ev.key === 'LeftAlt' || ev.key === 'RightAlt') {
        _alt = true;
    }
}, 'qtm_alt_down');
app.on('keyup', ev => {
    if (ev.key === 'LeftAlt' || ev.key === 'RightAlt') {
        _alt = false;
    }
}, 'qtm_alt_up');
app.on('click', ev => {
    if(_alt){
        THING.UE.RuntimeEditor.create();
    }
}, 'creatPoint');

切换点位的编辑模式

编辑模式包括选择、移动、旋转、缩放

javascript
//切换编辑模式:移动模式
    THING.UE.RuntimeEditor.switchTransformMode(THING.UE.UTransformEditMode.TranslateMode)
//切换编辑模式:旋转模式
    THING.UE.RuntimeEditor.switchTransformMode(THING.UE.UTransformEditMode.RotateMode)
//切换编辑模式:缩放模式
    THING.UE.RuntimeEditor.switchTransformMode(THING.UE.UTransformEditMode.ScaleMode)
//切换编辑模式:选择模式
    THING.UE.RuntimeEditor.switchTransformMode(THING.UE.UTransformEditMode.SelectMode)

刷新Thing对象的数据:Tags、UserData

javascript
let obj = app.queryByUserData('type=1');
obj.userData.type = 'transformer';
obj.tags.add('testtag');
THING.UE.RuntimeEditor.updateUserData(obj);

京ICP备13053130号 京公网安备11010502050947号