我正在制作一个游戏项目,在这个游戏项目中,我希望自动向前移动一个物体,同时向左或向右移动物体,就像太阳穴运行角色一样,我使用以下简单的脚本移动对象前进:
void Start () {
}
void Update () {
transform.Translate(Vector3.forward *Time.deltaTime);
transform.Translate(Vector3.left * Time.deltaTime, Space.World);
}
我不知道该怎么做。
答案 0 :(得分:0)
到目前为止,您已经走上了正确的轨道,但我认为您希望根据用户输入左右移动?
这是代表左右输入的代码示例,但可能需要针对您的用例进行自定义。
public float movementSpeed = 6f;
void Update ()
{
transform.Translate(Vector3.forward * Time.deltaTime);
//Strafe your object Left and right based on user input
transform.Translate(Vector3.right * Time.deltaTime * Input.GetAxis("Horizontal") * movementSpeed);
}
可用于旋转播放器的方法示例:
为了让你的播放器转动90度,你需要旋转实际的物体。根据您的实际逻辑/游戏玩法,您可以做一些简单的事情:
void Update() {
transform.Translate(Vector3.forward * Time.deltaTime);
//Strafe your object Left and right based on user input
transform.Translate(Vector3.right * Time.deltaTime * Input.GetAxis("Horizontal") * movementSpeed);
if (Input.GetKeyDown("q")) {
this.transform.Rotate(0, -90, 0);
}
if (Input.GetKeyDown("e")) {
this.transform.Rotate(0, 90, 0);
}
}
对于加速度计输入:
void Update() {
transform.Translate(Vector3.forward * Time.deltaTime);
if (Input.acceleration.x > 0) {
this.transform.Rotate(0, 90, 0);
}
else if (Input.acceleration.x < -0) {
this.transform.Rotate(0, -90, 0);
}
}