繁体   English   中英

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 方法。 该方法使用角度输入,您可以使用当前的方向角和到下一个航点的角度从几何上计算所需的角度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM