Exemple #1
0
    private void moveKinematic()
    {
        if (Input.GetMouseButtonDown(0))
        {
            destination   = DirectionUtility.getMouseDirection();
            destination.y = transform.position.y;
            go            = true;
            draw.clean();
            path_index = 2;

            calculating = true;
            inizializeTree(transform.position, destination);
        }
        else
        {
            if (go && path.Count > 0)
            {
                Vector3 dest = (Vector3)path[path_index];
                //Debug.Log(path.Count+" "+path_index+" "+path[path_index]);
                //makeMove(dest);

                float d = Vector3.Distance(transform.position, dest);
                if (d > 1f)
                {
                    Vector3 direction = (dest - transform.position).normalized;
                    //correctAngle(direction);
                    //DirectionUtility.makeKinematicMove (rigidbody, direction, speed);
                    DirectionUtility.makeCarMove(rigidbody, transform, direction, speed);
                }
                else
                {
                    rigidbody.velocity = Vector3.zero;
                    //transform.position = dest;
                    //Debug.Log(path.Count+" "+path_index);
                    path_index++;
                    if (path_index == path.Count)
                    {
                        go = false;
                    }
                }
            }
        }
    }