private IEnumerator JumpTo(List <Node> nodeList, Action callbackForSkillMove = null) { foreach (var node in nodeList) { yield return(wait); Poring.PrevNode = Poring.Node; Poring.Node.RemovePoring(Poring); m_targetPosition = node.transform.position; TurnFaceTo(m_targetPosition); Poring.Animator.Play("jump"); m_isMove = true; yield return(new WaitUntil(() => !m_isMove)); if (!Poring.OnMove()) { yield return(new WaitForSeconds(1)); Respawn(); m_gameMode.CurrentGameState = eStateGameMode.EndTurn; yield break; } if (!node.AddPoring(Poring)) { if (Poring.IsAlive) { FinishMove(); } else { Respawn(); m_gameMode.CurrentGameState = eStateGameMode.EndTurn; } yield break; } } yield return(wait); if (callbackForSkillMove != null) { callbackForSkillMove(); } else { FinishMove(); } }