切换深色模式
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);