| | |
| | | { |
| | | if (value != m_EffectID) |
| | | { |
| | | Stop(); |
| | | isInit = false; |
| | | m_EffectID = value; |
| | | } |
| | |
| | | protected EffectPenetrationBlocker blocker = null; |
| | | |
| | | protected bool isInit = false; |
| | | protected bool isPlaying = false; |
| | | public bool isPlaying |
| | | { |
| | | get; |
| | | protected set; |
| | | } |
| | | |
| | | protected List<ParticleSystem> particleList = new List<ParticleSystem>(); |
| | | |
| | |
| | | |
| | | protected virtual void OnEnable() |
| | | { |
| | | |
| | | if (isPlayOnEnable) |
| | | |
| | | if (isPlayOnEnable && playDelayTime != 0) |
| | | { |
| | | PlayAsync(false).Forget(); |
| | | } |
| | | else if (isPlayOnEnable) |
| | | { |
| | | Play(false); |
| | | } |
| | |
| | | PlayerEffect(); |
| | | } |
| | | |
| | | SoundPlayer.Instance.PlayUIAudio(effectConfig.audio); |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | { |
| | | //LoadAsset 已经有缓存SkeletonDataAsset |
| | | spineComp.skeletonDataAsset = ResManager.Instance.LoadAsset<SkeletonDataAsset>("UIEffect/" + effectConfig.packageName, effectConfig.fxName); |
| | | spineComp.MeshGenerator.settings.pmaVertexColors = !closePMA; //为true时会有部分特效不显示 如主界面装备特效 |
| | | //为true时会有部分特效不显示 如满级经验条;改成伽马后部分特效正常,还有部分依然要改此设置 |
| | | spineComp.MeshGenerator.settings.pmaVertexColors = !closePMA; |
| | | spineComp.raycastTarget = false; |
| | | spineComp.Initialize(true); |
| | | spineComp.timeScale = speedRate; |
| | |
| | | |
| | | spineComp.enabled = true; |
| | | PlayerTheSpineAnim(); |
| | | SoundPlayer.Instance.PlayUIAudioDelay(effectConfig.audio).Forget(); |
| | | } |
| | | |
| | | // 播放指定动画 |
| | |
| | | } |
| | | |
| | | // 从特效预制体池获取特效 |
| | | pool = GameObjectPoolManager.Instance.RequestPool(effectPrefab); |
| | | pool = GameObjectPoolManager.Instance.GetPool(effectPrefab); |
| | | effectTarget = pool.Request(); |
| | | // 设置父节点和位置 |
| | | effectTarget.transform.SetParent(transform); |
| | |
| | | { |
| | | blocker.SetParentCanvas(canvas); |
| | | } |
| | | SoundPlayer.Instance.PlayUIAudioDelay(effectConfig.audio).Forget(); |
| | | } |
| | | |
| | | public async UniTask PlayAsync(bool showLog = true, bool closePMA = false) |
| | |
| | | spineComp.enabled = false; |
| | | isPlaying = false; |
| | | onComplete?.Invoke(); |
| | | if (isReleaseImmediately) |
| | | { |
| | | Release(); |
| | | } |
| | | // TODO 会报错暂时注释 |
| | | // if (isReleaseImmediately) |
| | | // { |
| | | // Release(); |
| | | // } |
| | | |
| | | } |
| | | } |