增加自动旋转的同时按下按键左右移动
时间: 2024-09-23 21:09:55 浏览: 12
如果你想在Unity中增加自动旋转的同时允许用户通过按键控制左右移动,你可以稍微修改上述代码,加入新的输入处理。首先,你需要在`Update`方法中检查用户的键盘输入并应用相应的移动。这里有一个示例:
```csharp
using UnityEngine;
using UnityEngine.InputSystem;
public class CubeRotationAndMovement : MonoBehaviour
{
public float rotationSpeed = 90f;
public float moveSpeed = 5f; // 移动速度
private InputAction playerMoveAction; // 假设已连接到Input Manager
void Start()
{
// 初始化Input Action
playerMoveAction = GetComponentsInChildren<InputActionMap>().First().GetAction("PlayerMove"); // 更改"PlayerMove"为你实际的Input Action名字
}
void Update()
{
// 获取当前时间(以秒为单位)
float currentTime = Time.deltaTime;
// 旋转部分保持不变
float angle = currentTime * rotationSpeed;
transform.Rotate(0, angle, 0);
// 检查键盘输入移动
if (playerMoveAction.Ready())
{
Vector2 inputAxis = playerMoveAction.ReadValue<Vector2>();
if (inputAxis.x > 0) // 左移
transform.position += transform.right * moveSpeed * currentTime;
else if (inputAxis.x < 0) // 右移
transform.position += transform.left * moveSpeed * currentTime;
else if (inputAxis.y > 0) // 上移
transform.position += transform.forward * moveSpeed * currentTime;
else if (inputAxis.y < 0) // 下移
transform.position += transform.back * moveSpeed * currentTime;
}
}
}
```
在这个版本中,我们使用了`InputSystem`库来处理键盘输入,并通过`playerMoveAction`获取X轴和Y轴的值来控制左右和上下移动。