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