Esempio n. 1
0
        /// <summary>
        /// 添加技能
        /// </summary>
        /// <param name="skillName"></param>
        /// <param name="trigger"></param>
        public void AddSkill(string skillName, Func <bool> trigger, bool ignoreInput = false)
        {
            foreach (var s in skills)
            {
                if (s.name == skillName)
                {
                    Debug.LogWarning("重复添加技能");
                    return;
                }
            }
            if (skills.Count >= this.MaxRealSkillCount + this.BaseSkillCount)
            {
                Debug.LogWarning("无法添加更多技能");
                return;
            }
            this.allSkillNames.Add(skillName);
            var skill = SkillTriggerMgr.skillInstanceDic[skillName];

            this.skills.Add(skill);
            var pair = new MainLoop.UpdateTestPair(trigger, () => RunSkill(skills.Count - 1, ignoreInput));

            MainLoop.Instance.AddUpdateTest(pair);
            //dis.Add(pair);
        }
        public override void OnDisable()
        {
            MainLoop.Instance.RemoveUpdateTest(pair);

            pair = null;
        }
 public override void OnEnable()
 {
     pair = new MainLoop.UpdateTestPair(() => Input.GetKeyDown(KeyCode.K), Execute);
     MainLoop.Instance.AddUpdateTest(pair);
 }