我有一个内部函数Update的脚本:
using UnityEngine;
public class Player : MonoBehaviour
{
// The force which is added when the player jumps
// This can be changed in the Inspector window
public Vector2 jumpForce = new Vector2(0, 300);
// Update is called once per frame
void Update ()
{
// Jump
if (Input.GetKeyUp("space"))
{
rigidbody2D.velocity = Vector2.zero;
rigidbody2D.AddForce(jumpForce);
}
}
}
当我点击空格键按钮时,该对象正在跳起然后掉下来,它工作正常。 现在我希望当我点击右箭头键时,对象将向右移动,所以我做了:
using UnityEngine;
public class Player : MonoBehaviour
{
void Update ()
{
if (Input.GetKey(KeyCode.UpArrow)) {
transform.Translate(Vector3.forward * Time.deltaTime);
}
}
但现在当我点击统一程序中的PLAY按钮时,没有发生任何事情,我看到了第二次眨眼,这就是游戏永远无法运行。
答案 0 :(得分:1)
Vector3.forward
会将您的对象移动到 Z轴(越来越深),而您需要在 X轴中向右移动对象。如果您希望对象向右移动,请使用Vector3.right
。此外,您似乎正在制作2D游戏,因此Vector2
在这种情况下更好。
transform.Translate(Vector2.right * Time.deltaTime);