diff --git a/src/core/types.ts b/src/core/types.ts index 2cae6ce..bc4e45a 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -75,7 +75,7 @@ export type ResponseSetPropertyData = Info; export type RequestLogData = string[]; export type RequestOpenNodeTouchFuntionData = { uuid: string; code: ShowCode; index: number }; export type RequestOpenScriptData = { - /**节点的UUID */ + /**节点或者组件的UUID */ uuid: string; /**节点的脚本名字 */ script: string; diff --git a/src/scripts/inject/inspector.ts b/src/scripts/inject/inspector.ts index 7b13f66..0692170 100644 --- a/src/scripts/inject/inspector.ts +++ b/src/scripts/inject/inspector.ts @@ -125,21 +125,26 @@ export class Inspector extends InjectEvent { } case Msg.RequestOpenScript: { const data: RequestOpenScriptData = pluginEvent.data; - const node = this.inspectorGameMemoryStorage[data.uuid]; - if (!node || !node.isValid) { + const nodeOrComp = this.inspectorGameMemoryStorage[data.uuid]; + if (!nodeOrComp || !nodeOrComp.isValid) { return; } - const comps = node._components; - if (comps) { - for (let i = 0; i < comps.length; i++) { - const comp = comps[i]; - const compName = this.getCompName(comp); - if (compName === data.script) { - this.target = comp.constructor; - break; + if (nodeOrComp instanceof cc.Node) { + const comps = nodeOrComp._components; + if (comps) { + for (let i = 0; i < comps.length; i++) { + const comp = comps[i]; + const compName = this.getCompName(comp); + if (compName === data.script) { + this.target = comp.constructor; + break; + } } } + } else if (true || nodeOrComp instanceof cc.Component) { + this.target = nodeOrComp.constructor; } + break; } case Msg.RequestOpenNodeTouchFuntion: { diff --git a/src/views/devtools/ui/property-group.vue b/src/views/devtools/ui/property-group.vue index 4c7a025..f05030d 100644 --- a/src/views/devtools/ui/property-group.vue +++ b/src/views/devtools/ui/property-group.vue @@ -8,6 +8,7 @@ +