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