pinball/assets/_Game/Scripts/Gizmos/GizmosExecute.ts

23 lines
731 B
TypeScript

import { Director, director, find } from 'cc';
import { Editor } from './Define';
if (Editor) {
if (!sessionStorage.getItem('gizmosUpdating')) {
sessionStorage.setItem('gizmosUpdating', 'true');
director.on(Director.EVENT_BEFORE_UPDATE, querySelected);
}
function querySelected() {
if (Editor) {
const selectedList: string[] = Editor.Selection.getSelected('node');
selectedList.forEach(callGizmos);
}
}
async function callGizmos(uuid: string) {
const node = await Editor.Message.request('scene', 'query-node-tree', uuid);
const comps = find(node.path).components;
comps.forEach((comp) => comp.onDrawGizmosSelected?.());
}
}