Unity 2D Sprite 朝向物体旋转

Unity 2D Sprite rotate toward object

我正在统一制作这款游戏​​。这是一款 2d 赛车游戏,玩家是一名赛车手,必须在道路上行驶,避免撞到锥体或其他也在道路上行驶的其他汽车。我已经为在路上行驶的其他 NPC 汽车创建了一条路径并且该部分有效。那些车按照我希望的方式行驶。但是我现在要做的是让NPC汽车精灵旋转到下一个路径点。

因此,例如,如果车辆正在变换车道或转弯,汽车应该旋转并指向其路径中的下一个点。这是我的代码:

public Transform[] waypoints;   //array to hold all the waypoints in the sprite's path

    [SerializeField]
    public float moveSpeed = 2.0f;

    public int wayPointIndex = 0;

    // Start is called before the first frame update
    void Start()
    {
        transform.position = waypoints[wayPointIndex].transform.position;
    }

    // Update is called once per frame
    void Update()
    {
        Move();
    }

    public void Move(){
        if(wayPointIndex <= waypoints.Length - 1){
            transform.position = Vector3.MoveTowards(transform.position, waypoints[wayPointIndex].transform.position, moveSpeed * Time.deltaTime);

            if(transform.position == waypoints[wayPointIndex].transform.position){
                wayPointIndex+=1;
            }
        }
    }

顺便说一句,这是一个鸟瞰游戏。所以车辆是从上往下看的。

您可以使用 transform.rotate 方法。该方法使用角度输入,您可以根据当前方向角度和到下一个路点的角度几何计算所需角度。