diff --git a/assets/_Game/Scripts/GamePlay/Enemy.ts b/assets/_Game/Scripts/GamePlay/Enemy.ts index 961a8b4..01a15d8 100644 --- a/assets/_Game/Scripts/GamePlay/Enemy.ts +++ b/assets/_Game/Scripts/GamePlay/Enemy.ts @@ -55,10 +55,6 @@ export class Enemy extends Component { private _isActive = false; private _currentGoal = 0; - onFocusInEditor(): void { - Gizmos2D.registerDrawGizmos(this.node); - } - onDrawGizmosSelected(): void { Gizmos2D.beginColor(this.node, Color.RED); Gizmos2D.drawSolidCircle(this.node, this._patrolPoint1.worldPosition, 20); diff --git a/assets/_Game/Scripts/GamePlay/MutilBall.ts b/assets/_Game/Scripts/GamePlay/MutilBall.ts index 88a25a8..906f694 100644 --- a/assets/_Game/Scripts/GamePlay/MutilBall.ts +++ b/assets/_Game/Scripts/GamePlay/MutilBall.ts @@ -41,17 +41,15 @@ export class MultiBall extends Component { private _enabled: boolean = true; - onFocusInEditor(): void { - Gizmos2D.registerDrawGizmos(this.node); - } + onDrawGizmos(): void {} - onDrawGizmos(): void { - Gizmos2D.beginColor(this.node, new Color(0, 255, 0, 200)); + onDrawGizmosSelected(): void { + Gizmos2D.beginColor(this.node, new Color(0, 255, 0, 150)); const points = (this._collider as PolygonCollider2D).points.map((p) => p.clone().add(this._collider.offset)); Gizmos2D.beginLocalPosition(this.node); Gizmos2D.drawSolidPolygon(this.node, points); Gizmos2D.endLocalPosition(this.node); - Gizmos2D.beginColor(this.node, new Color(0, 0, 255, 200)); + Gizmos2D.beginColor(this.node, new Color(0, 0, 255, 150)); Gizmos2D.drawSolidEllipse(this.node, this._portLeft.worldPosition, 20, 30); Gizmos2D.drawSolidEllipse(this.node, this._portRight.worldPosition, 20, 30); } diff --git a/assets/_Game/Scripts/Gizmos/Gizmos2D.ts b/assets/_Game/Scripts/Gizmos/Gizmos2D.ts index 0179f5c..749d31c 100644 --- a/assets/_Game/Scripts/Gizmos/Gizmos2D.ts +++ b/assets/_Game/Scripts/Gizmos/Gizmos2D.ts @@ -39,12 +39,8 @@ class GizmosDebugDraw extends Component { private _color: Color = Gizmos2D.DEFAULT_COLOR; private _useLocalPosition: boolean = false; private _layer: Layers.Enum = Gizmos2D.DEFAULT_LAYER; - private _parentNode: Node; protected update(dt: number): void { - //only call in editor - this.callNodeDrawGizmos(); - this._renderers.forEach((renderer) => { renderer.clear(); renderer.draw(); @@ -55,25 +51,6 @@ class GizmosDebugDraw extends Component { this._layer = Gizmos2D.DEFAULT_LAYER; } - private callNodeDrawGizmos() { - if (Editor && this._parentNode) { - const selectedList: string[] = Editor.Selection.getSelected('node'); - if (selectedList.includes(this._parentNode.uuid)) { - const comps = this._parentNode.components; - for (let i = 0; i < comps.length; i++) { - const comp: Component = comps[i]; - comp.onDrawGizmosSelected?.(); - } - } - - const comps = this._parentNode.components; - for (let i = 0; i < comps.length; i++) { - const comp: Component = comps[i]; - comp.onDrawGizmos?.(); - } - } - } - private createRenderer(color: Color) { const hex = color.toHEX(); const g = new Node(`color ${hex}`).addComponent(Graphics); @@ -102,10 +79,6 @@ class GizmosDebugDraw extends Component { return local; } - public registerDrawGizmos(node: Node) { - this._parentNode = node; - } - public setColor(color: Color) { this._color = color; } @@ -324,10 +297,6 @@ export default class Gizmos2D { return debugNode; } - public static registerDrawGizmos(node: Node) { - this.getDebugNode(node).registerDrawGizmos(node); - } - public static beginColor(node: Node, color: Color) { this.getDebugNode(node).setColor(color); } diff --git a/assets/_Game/Scripts/Gizmos/GizmosExcute.ts.meta b/assets/_Game/Scripts/Gizmos/GizmosExcute.ts.meta new file mode 100644 index 0000000..2d2d5e4 --- /dev/null +++ b/assets/_Game/Scripts/Gizmos/GizmosExcute.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "5f7a6826-4de3-412e-876c-80145444880e", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/_Game/Scripts/Gizmos/GizmosExecute.ts b/assets/_Game/Scripts/Gizmos/GizmosExecute.ts new file mode 100644 index 0000000..f06aad8 --- /dev/null +++ b/assets/_Game/Scripts/Gizmos/GizmosExecute.ts @@ -0,0 +1,22 @@ +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?.()); + } +} diff --git a/assets/_Game/Scripts/Manager/SpawnObjectManager.ts b/assets/_Game/Scripts/Manager/SpawnObjectManager.ts index fbd7ab8..24b9b99 100644 --- a/assets/_Game/Scripts/Manager/SpawnObjectManager.ts +++ b/assets/_Game/Scripts/Manager/SpawnObjectManager.ts @@ -52,11 +52,7 @@ export class SpawnObjectManager extends Component { private _boosterSpawned = false; private _spawnTimeObject = 0; - onFocusInEditor(): void { - Gizmos2D.registerDrawGizmos(this.node); - } - - onDrawGizmos(): void { + onDrawGizmosSelected(): void { for (let i = 0; i < this._spawnPoints.length; i++) { Gizmos2D.beginColor(this.node, new Color(0, 255, 0, 180)); Gizmos2D.drawSolidCircle(this.node, this._spawnPoints[i].worldPosition, 15);