0
目前我正在處理一些球員動作。我的玩家的主要想法只是水平和垂直移動,而不是對角線。我找不到任何合理的解決方案來解決這個問題。我現在真的不想使用剛體或character.controller。我想要實現的另一件事是,當我按下多個方向鍵時,我希望我的播放器直接移動到最後按下的方向。這裏是我的代碼:移動到沒有對角線移動的最後按下的方向
using UnityEngine;
using System.Collections;
public class controller : MonoBehaviour {
public int movementspeed;
// Use this for initialization
void Start() {
}
// Update is called once per frame
void Update() {
if (Input.GetKey (KeyCode.A)) {
//ratation
transform.localEulerAngles = new Vector3(0,270,0);
//move
transform.Translate (transform.right * movementspeed * Time.deltaTime);
}
else if(Input.GetKey (KeyCode.D)) {
//ratation
transform.localEulerAngles = new Vector3(0,90,0);
//move
transform.Translate (transform.right *(-1)* movementspeed * Time.deltaTime);
}
else if(Input.GetKey (KeyCode.S)) {
//ratation
transform.localEulerAngles = new Vector3(0,180,0);
//move
transform.Translate (transform.forward * (-1) * movementspeed * Time.deltaTime);
}
else if (Input.GetKey (KeyCode.W)) {
//ratation
transform.localEulerAngles = new Vector3(0,0,0);
//move
transform.Translate (transform.forward * movementspeed * Time.deltaTime);
}
else if (Input.GetKey (KeyCode.A)) {
//ratation
transform.localEulerAngles = new Vector3(0,270,0);
//move
transform.Translate (transform.right * movementspeed * Time.deltaTime);
}
}
}
謝謝你的回答,在做了一些工作後,我意識到這不是一個好的方法來製作腳本。我切換了我的工作,現在我正在使用charactercontroller。 – umuur
沒問題。我可以推薦在某個時候製作自己的角色控制器。這對練習很有幫助,而且你可以通過這種方式得到它。 – Martin