From 06a4eb12569dfe2fa6f357d2015a3a71ca79ee3a Mon Sep 17 00:00:00 2001 From: dgflash Date: Sun, 21 Aug 2022 14:12:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=89=B9=E6=95=88=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=8F=91=E5=B8=83=E6=97=B6=E6=8F=90=E7=A4=BA=E7=9A=84?= =?UTF-8?q?=E4=BA=A4=E5=8F=89=E5=BC=95=E7=94=A8=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/libs/animator-effect/EffectEvent.ts | 5 +++++ assets/libs/animator-effect/EffectEvent.ts.meta | 9 +++++++++ assets/libs/animator-effect/EffectFinishedRelease.ts | 6 ++++-- assets/libs/animator-effect/EffectSingleCase.ts | 12 ++++++++++++ 4 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 assets/libs/animator-effect/EffectEvent.ts create mode 100644 assets/libs/animator-effect/EffectEvent.ts.meta diff --git a/assets/libs/animator-effect/EffectEvent.ts b/assets/libs/animator-effect/EffectEvent.ts new file mode 100644 index 0000000..22a8d98 --- /dev/null +++ b/assets/libs/animator-effect/EffectEvent.ts @@ -0,0 +1,5 @@ +/** 特效管理模块事件 */ +export enum EffectEvent { + /** 回收节点 */ + Put = "EffectEvent_Put" +} \ No newline at end of file diff --git a/assets/libs/animator-effect/EffectEvent.ts.meta b/assets/libs/animator-effect/EffectEvent.ts.meta new file mode 100644 index 0000000..3b744b4 --- /dev/null +++ b/assets/libs/animator-effect/EffectEvent.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "44587e42-cf24-4a68-b892-5d3607eba966", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/libs/animator-effect/EffectFinishedRelease.ts b/assets/libs/animator-effect/EffectFinishedRelease.ts index 3d6698b..8fbb26e 100644 --- a/assets/libs/animator-effect/EffectFinishedRelease.ts +++ b/assets/libs/animator-effect/EffectFinishedRelease.ts @@ -6,7 +6,9 @@ */ import { Animation, Component, ParticleSystem, _decorator } from 'cc'; -import { EffectSingleCase } from './EffectSingleCase'; +import { oops } from '../../core/Oops'; +import { EffectEvent } from './EffectEvent'; + const { ccclass, property } = _decorator; /** 动画播放完释放特效 */ @@ -44,6 +46,6 @@ export class EffectFinishedRelease extends Component { } private onRecovery() { - if (this.node.parent) EffectSingleCase.instance.put(this.node); + if (this.node.parent) oops.message.dispatchEvent(EffectEvent.Put, this.node); } } diff --git a/assets/libs/animator-effect/EffectSingleCase.ts b/assets/libs/animator-effect/EffectSingleCase.ts index 97c73fa..1b8b6a0 100644 --- a/assets/libs/animator-effect/EffectSingleCase.ts +++ b/assets/libs/animator-effect/EffectSingleCase.ts @@ -7,7 +7,9 @@ import { Component, Node, NodePool, Prefab, Vec3 } from 'cc'; import { resLoader } from '../../core/common/loader/ResLoader'; +import { oops } from '../../core/Oops'; import { ViewUtil } from '../../core/utils/ViewUtil'; +import { EffectEvent } from './EffectEvent'; import { EffectFinishedRelease } from './EffectFinishedRelease'; /** 效果数据 */ @@ -35,6 +37,16 @@ export class EffectSingleCase { private effects: Map = new Map(); + constructor() { + oops.message.on(EffectEvent.Put, this.onHandler, this); + } + + private onHandler(event: string, args: any) { + if (event == EffectEvent.Put) { + this.put(args as Node); + } + } + /** 加载资源并现实特效 */ loadAndShow(name: string, parent?: Node, params?: IEffectParams): Promise { return new Promise((resolve, reject) => {