写一个unity2D的俯视角八方向移动代码
时间: 2024-03-10 08:48:59 浏览: 197
好的,下面是一个简单的Unity2D俯视角八方向移动代码,你可以将其添加到你的角色控制器脚本中:
```csharp
public float speed = 5f;
private Vector2 direction;
void Update()
{
// 获取方向输入值
float horizontalInput = Input.GetAxisRaw("Horizontal");
float verticalInput = Input.GetAxisRaw("Vertical");
// 生成方向向量
direction = new Vector2(horizontalInput, verticalInput).normalized;
// 移动角色
transform.position += (Vector3)direction * speed * Time.deltaTime;
// 旋转角色
if (direction != Vector2.zero)
{
float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
}
}
```
这段代码使用 `Input.GetAxisRaw` 获取水平和垂直方向的输入值,并将它们转换成一个标准化的向量。接着,它使用 `transform.position` 将角色沿着这个向量移动。最后,它使用 `Mathf.Atan2` 函数计算方向向量的角度,并使用 `transform.rotation` 将角色旋转到正确的方向。
这段代码可以让你的角色在八个方向上自由移动,包括向上、向下、向左、向右以及四个对角线方向。
阅读全文