private void UpdatePathMovement() { if (m_CurrentWaypoint == null) { m_CurrentWaypoint = path.GetNextWaypoint(); if (m_CurrentWaypoint == null) { return; } } Vector3 movement = Vector3.MoveTowards(transform.localPosition, m_CurrentWaypoint.gameObject.transform.position, Time.deltaTime * speed); transform.localPosition = movement; Vector3 objectPositionNoY = new Vector3(transform.position.x, 0f, transform.position.z); Vector3 waypointPositionNoY = new Vector3(m_CurrentWaypoint.transform.position.x, 0f, m_CurrentWaypoint.transform.position.z); float delta = Vector3.Distance(objectPositionNoY, waypointPositionNoY); if (delta < 0.1f) { m_CurrentWaypoint = path.GetNextWaypoint(m_CurrentWaypoint); } }