Beispiel #1
0
    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);
        }
    }