Unity 2D Sprite向对象旋转

问题描述

我正在统一制作这款游戏​​。这是一款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方法。该方法使用角度输入,您可以根据当前的方向角度和到下一个航路点的角度,以几何方式计算所需的角度。