void NextCall() { if (task.Count > 0) { currentPlay = task.Dequeue(); currentPlay.Invoke(); } else { currentPlay = null; manager.MenkoList.ResumeRigidAll(); } }
/// <summary> /// スキルの実行 /// </summary> /// <param name="battleData"></param> public void InvokeSkill(MenkoBattleData battleData, Menko invoker) { Debug.Log("Invoke Skill"); string skillPath = AssetPath.GetSkillPrefabPath(battleData.SkillData.UseSkillID); var skillPrefab = AssetManager.Load<SkillBase>(skillPath).Asset as SkillBase; SkillBase skill = GameObject.Instantiate(skillPrefab); skill.gameObject.SetActive(false); skill.transform.position = invoker.transform.position; skill.transform.SetPosY(0f); var playTask = new SkillPlayTask(manager, invoker, battleData, skill, NextCall); if (currentPlay == null) { manager.MenkoList.StopRigidAll(); currentPlay = playTask; currentPlay.Invoke(); } else { task.Enqueue(playTask); } }
/// <summary> /// スキルの実行 /// </summary> /// <param name="battleData"></param> public void InvokeSkill(MenkoBattleData battleData, Menko invoker) { Debug.Log("Invoke Skill"); string skillPath = AssetPath.GetSkillPrefabPath(battleData.SkillData.UseSkillID); var skillPrefab = AssetManager.Load <SkillBase>(skillPath).Asset as SkillBase; SkillBase skill = GameObject.Instantiate(skillPrefab); skill.gameObject.SetActive(false); skill.transform.position = invoker.transform.position; skill.transform.SetPosY(0f); var playTask = new SkillPlayTask(manager, invoker, battleData, skill, NextCall); if (currentPlay == null) { manager.MenkoList.StopRigidAll(); currentPlay = playTask; currentPlay.Invoke(); } else { task.Enqueue(playTask); } }