少年修仙传客户端代码仓库
client_linchunjie
2018-10-25 42993b0a870d315f02b831543eca7480c3b8ddfc
4351【前端】【1.2】法宝技能演示添加特效配置
1个文件已修改
47 ■■■■■ 已修改文件
UI/Common/UI3DHeroSkillShow.cs 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/UI3DHeroSkillShow.cs
@@ -51,6 +51,8 @@
        Action m_HeroSkillCompletet;
        SFXController m_SkillExtraSfx;
        public int cacheSkillId { get; private set; }
        public Camera showCamera { get { return m_ShowCamera; } }
@@ -163,6 +165,15 @@
                });
                var _clip = _index != -1 ? _treasureSkill.clip[_index] : _treasureSkill.clip[0];
                ShowHeroSkill(_skillId, _clip.clip);
                if (_treasureSkill.effects != null && _treasureSkill.effects.Count > 0)
                {
                    _index = _treasureSkill.effects.FindIndex((x) =>
                    {
                        return (int)x.job == PlayerDatas.Instance.baseData.Job;
                    });
                    var _effect = _index != -1 ? _treasureSkill.effects[_index] : _treasureSkill.effects[0];
                    StartCoroutine(Co_PlayExtraEffect(_effect));
                }
            }
        }
@@ -251,12 +262,37 @@
            StopShow();
        }
        IEnumerator Co_PlayExtraEffect(Effect effect)
        {
            yield return new WaitForSeconds(effect.startTime);
            if (m_SkillExtraSfx != null)
            {
                SFXPlayUtility.Instance.Release(m_SkillExtraSfx);
                m_SkillExtraSfx = null;
            }
            var parent = hero;
            if (!string.IsNullOrEmpty(effect.parentName) && hero != null)
            {
                parent = hero.GetChildTransformDeeply(effect.parentName, true);
            }
            m_SkillExtraSfx = SFXPlayUtility.Instance.Play(effect.id, parent);
            if (m_SkillExtraSfx != null)
            {
                m_SkillExtraSfx.duration = effect.duration;
            }
        }
        public void StopShow()
        {
            UI3DTreasureSelectStage.Instance.showCamera.enabled = true;
            m_ShowCamera.gameObject.SetActive(false);
            m_HeroSkillCompletet = null;
            m_HeroShow.Dispose();
            if (m_SkillExtraSfx != null)
            {
                SFXPlayUtility.Instance.Release(m_SkillExtraSfx);
                m_SkillExtraSfx = null;
            }
        }
        [Serializable]
@@ -267,10 +303,21 @@
        }
        [Serializable]
        public struct Effect
        {
            public PlayerJob job;
            public int id;
            public float startTime;
            public float duration;
            public string parentName;
        }
        [Serializable]
        public struct TreasureSkill
        {
            public int treasureId;
            public List<CameraClip> clip;
            public List<Effect> effects;
        }
        public enum PlayerJob