mirror of
https://gitee.com/sli97/behavior-eden-coco-plugin.git
synced 2025-10-09 08:36:25 +00:00
init
This commit is contained in:
79
dist/contributions/inspector/behavior-editor.js
vendored
Normal file
79
dist/contributions/inspector/behavior-editor.js
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
// @ts-nocheck
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ready = exports.update = exports.$ = exports.template = void 0;
|
||||
exports.template = `
|
||||
<div style="display:flex;justify-content:center;align-items:center;margin-top:10px;padding-right:8px;">
|
||||
<ui-button class="editor" style="height:24px;padding:0 16px;">Edit Tree</ui-prop>
|
||||
</div>
|
||||
|
||||
`;
|
||||
exports.$ = {
|
||||
editor: ".editor",
|
||||
};
|
||||
function update(dump) {
|
||||
// 使用 ui-porp 自动渲染,设置 prop 的 type 为 dump
|
||||
// render 传入一个 dump 数据,能够自动渲染出对应的界面
|
||||
// 自动渲染的界面修改后,能够自动提交数据
|
||||
if (typeof this.$.editor.render === "function") {
|
||||
this.$.editor.render(dump.value.label);
|
||||
}
|
||||
}
|
||||
exports.update = update;
|
||||
function ready() {
|
||||
this.$.editor.addEventListener("confirm", async () => {
|
||||
const BehaviorTreeComponentName = "BehaviorTree";
|
||||
// 找到点击组件的节点
|
||||
const node = await Editor.Message.request("scene", "query-node", Editor.Selection.getSelected("node"));
|
||||
if (!node) {
|
||||
console.warn(`未选中节点`);
|
||||
}
|
||||
// 找到BehaviorTree组件
|
||||
const index = node.__comps__.findIndex((v) => v.type === BehaviorTreeComponentName);
|
||||
if (index === -1) {
|
||||
console.warn(`节点未挂载【${BehaviorTreeComponentName}】组件`);
|
||||
return;
|
||||
}
|
||||
const component = node.__comps__[index];
|
||||
// 调用BehaviorTree组件上的方法获取json文件
|
||||
const json = await Editor.Message.request("scene", "execute-component-method", {
|
||||
uuid: component.value.uuid.value,
|
||||
name: "getAssetUrl",
|
||||
});
|
||||
// JSON文件不存在
|
||||
if (!json) {
|
||||
// 生成文件
|
||||
const url = `db://assets/${node.name.value}.json`;
|
||||
const content = JSON.stringify({ nodes: [] });
|
||||
const res = await Editor.Message.request("asset-db", "create-asset", url, content, {
|
||||
overwrite: false,
|
||||
rename: true,
|
||||
});
|
||||
console.log(`已经自动生成${res.name}文件`);
|
||||
// 设置属性
|
||||
const uuid = res.uuid;
|
||||
const success = await Editor.Message.request("scene", "set-property", {
|
||||
uuid: node.uuid.value,
|
||||
path: `__comps__.${index}.asset`,
|
||||
dump: {
|
||||
type: "cc.JsonAsset",
|
||||
value: {
|
||||
uuid,
|
||||
},
|
||||
},
|
||||
});
|
||||
if (success) {
|
||||
console.log(`JSON文件挂载成功`);
|
||||
Editor.Message.request("behavior-eden", "open-panel");
|
||||
}
|
||||
else {
|
||||
console.warn("JSON文件挂载失败");
|
||||
}
|
||||
}
|
||||
else {
|
||||
// 打开插件面板
|
||||
Editor.Message.request("behavior-eden", "open-panel");
|
||||
}
|
||||
});
|
||||
}
|
||||
exports.ready = ready;
|
Reference in New Issue
Block a user