我正在尝试制作一个非常简单的动作脚本,玩家可以使用' wasd'使角色预制件向前,向后,向左和向右。我使用以下脚本来执行此操作:
public class PlayerInput : MonoBehaviour {
public Camera camera;
public float speed;
void Update () {
float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
Debug.Log("horizontal: " + horizontal);
Debug.Log("vertical: " + vertical);
// Set character position
Vector3 direction = transform.position;
if(horizontal != 0.0f || vertical != 0.0f) {
if(vertical < 0.0f) {
direction -= camera.transform.forward;
} else if(vertical > 0.0f) {
direction += camera.transform.forward;
}
if(horizontal < 0.0f) {
direction -= camera.transform.right;
} else if(horizontal > 0.0f) {
direction += camera.transform.right;
}
transform.Translate(direction * speed * Time.deltaTime);
}
}
}
但是,无论我按下什么键,我的角色都只会向前移动。相机位于同一character
预制件中我的角色后面。为什么我的输入只是向前移动?
我可以添加我的预制件和相机的照片,如果有帮助的话。
答案 0 :(得分:0)
我很傻..我需要新建我的Vector3 direction
...
Vector3 direction = transform.position;
应为Vector3 direction = new Vector3();