/// <summary> /// 直接回收特效 /// 会立即停止当前特效的播放, 并把特效回收,放入池子中。 /// 调用这个方法后,外部对于特效的引用(EffectController)将不再可用。所以这个方法调用后需要将特效的引用赋空 /// </summary> public void RecycleFX() { if (m_DestroyedUnsafe) { return; } if (m_Status == EffectStatus.Recycled) { return; } if (m_AssetLoadHandler != null && m_VFXController == null) { AssetUtil.UnloadAssetLoader(m_AssetLoadHandler); } StopFX(true); OnEffectFinished?.Invoke(this); OnEffectFinished = delegate(EffectController e) { }; ClearTimer(); m_Status = EffectStatus.Recycled; // 暂时使用老的缓存池。 等李玉斌移植完毕 //effect.GetEffectObject()?.ReleaseItem(); if (m_VFXController != null) { m_VFXController.RecycleFX(); m_VFXController.transform.SetParent(null, false); m_VFXController.Recycle(); m_VFXController = null; } else { DebugUtility.LogFormat("EffectBug", "null VFXController. name: ", GetVFXAssetName()); } ReleaseItem(); }