我是Unity的新手,對於我的第一場比賽,我決定讓無盡的跑步者像Temple Run一樣。我已經建立了基本的地形,但我在使播放器正確移動時遇到了問題。我的玩家是一個三維立方體,一旦遊戲開始時它會向前移動,我希望當我按左箭頭鍵左轉並繼續沿轉彎方向移動,並且當我按下右箭頭鍵時右轉並繼續向轉彎方向移動。Unity3d上的玩家動作
目前,我使用Vector3.left
和Vector3.right
以及transform.rotate
。這不會產生預期的效果。例如,當我按下右箭頭鍵時,對象將旋轉並右轉,但當我再次右按以再次右轉時,只有對象旋轉(因爲對象已經在Vector.right方向上移動)。
希望這是有道理的。任何幫助,將不勝感激。提前致謝。 :)
這是我使用的代碼,它不工作。
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour
{
public float speed;
private Vector3 dir;
// Use this for initialization
void Start()
{
dir = Vector3.zero;
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.UpArrow))
{
dir = Vector3.forward;
}
if (Input.GetKeyDown(KeyCode.RightArrow))
{
dir = Vector3.right;
transform.Rotate(0, 90, 0);
Quaternion.AngleAxis(90, Vector3.up);
}
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
dir = Vector3.left;
transform.Rotate(0, -90, 0);
Quaternion.AngleAxis(-90, Vector3.up);
}
float amountToMove = speed * Time.deltaTime;
transform.Translate(dir * amountToMove);
}
}