Ejemplo n.º 1
0
 protected override List <Type> RegListenComs()
 {
     effectConfig = GameConfigHelp.GetConfig <EffectConfig>(ConfigType.Effect);
     return(new List <Type>()
     {
         typeof(SkillCom)
     });
 }
Ejemplo n.º 2
0
        private void HandleSkill(SkillCom skillCom)
        {
            //没有技能释放请求
            if (skillCom.SkillId <= 0)
            {
                return;
            }

            //生成一个时间线
            if (skillCom.Line == null)
            {
                skillCom.Line = TimeLineHelp.CreateTimeLine();
            }
            else
            {
                skillCom.Line = TimeLineHelp.AddTimeLine(skillCom.Line);
            }

            //重置
            skillCom.Line.ReSet();

            SkillJson json = GameConfigHelp.GetSkillInfo(skillCom.SkillId);

            //播放动画
            for (int i = 0; i < json.AnimClips.Count; i++)
            {
                SkillAnimJson animJson = json.AnimClips[i];
                skillCom.Line.AddTrack((float)animJson.Time, 0).OnStart(() => {
                    PlayAnim(skillCom, animJson.AnimName);
                });
            }
            //播放特效
            for (int i = 0; i < json.Effects.Count; i++)
            {
                SkillEffectJson effectJson = json.Effects[i];
                skillCom.Line.AddTrack((float)effectJson.Time, 0).OnStart(() => {
                    PlayEffect(skillCom, effectJson);
                });
            }
            //播放音效
            for (int i = 0; i < json.Audios.Count; i++)
            {
                SkillAudioJson audioJson = json.Audios[i];
                skillCom.Line.AddTrack((float)audioJson.Time, 0).OnStart(() => {
                    PlayAudio(skillCom, audioJson.AudioId);
                });
            }
            //处理数据
            HandleSkillData(skillCom, json.Data);

            //开始播放技能
            skillCom.Line.Start();

            //重置
            skillCom.SkillId = 0;
        }