public void TickMovement() { if (m_TargetNode == null || m_Dead) { return; } Vector3 target = m_TargetNode.Position; Vector3 dir = target - m_Transform.position; dir.y = 0; float distance = dir.magnitude; if (Grid.InsideOfNode(m_Transform.position, m_TargetNode, m_NodeSize) && !m_TargetNode.EnemyDatas.Contains(m_Data)) { m_PrevNode.EnemyDatas.Remove(m_Data); m_TargetNode.EnemyDatas.Add(m_Data); } if (distance < TOLERANCE) { m_PrevNode = m_TargetNode; m_TargetNode = m_TargetNode.NextNode; return; } dir = dir.normalized; Vector3 delta = dir * (m_Speed * Time.deltaTime); m_Transform.Translate(delta); }