如题,或者有获取到选中节点信息的方法,Editor.Selection.getSelected只能获取到 uuid 但怎么通过 uuid 获取到具体的节点信息?
通过cc.director.getScene(); 递归遍历获取
有没有别的,这个我想过,通过 getChildByUuid来拿,但是感觉比较消耗性能
cc.director.getScene()
在 Prefab 编辑界面无效,这可咋整…
通过 scene:query-node
消息的形式实现了我的需求了(查找当前选中的节点上的 sp.Skeleton 组件中的 skeletonData 引用):
/**
* 查找节点上引用的骨骼资源
* @param {string} nodeUuid
* @returns {Promise<string>}
*/
async querySkeletonOnNode(nodeUuid) {
const node = await Editor.Message.request('scene', 'query-node', nodeUuid);
if (node && node['__comps__']) {
const components = node['__comps__'];
for (let i = 0; i < components.length; i++) {
if (components[i].type === 'sp.Skeleton') {
const uuid = components[i].value.skeletonData.value.uuid;
return (uuid !== '' ? uuid : null);
}
}
}
return null;
}
此方法在场景和预制体编辑界面都有效。
2赞
试试 cce.Node.query(id)
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。