我在修复此错误时遇到了一些问题。我之前已经有了它的工作,但是当我添加第二个GetKeyDown时它就停止了工作。对不起,如果我看起来很愚蠢,我是一个极端的初学者。
using UnityEngine;
using System.Collections;
// Use this for initialization
void Start ()
{
public int moveSpeed = 5;
}
// Update is called once per frame
void Update ()
{
if (Input.GetKeyDown (KeyCode.D))
{
transform.Translate (Vector3.right * moveSpeed);
};
if (Input.GetKeyDown (KeyCode.A))
{
transform.Translate (Vector3.left * moveSpeed);
};
}
};
答案 0 :(得分:3)
A)你缺少类声明行(你还有它的右括号)
using UnityEngine;
using System.Collections;
public class Stuff : MonoBehaviour { // <-- you need class declaration (it must be the same name as file "Stuff.cs"
public int moveSpeed = 5; // <-- B) you need to declare this variable at this scope or else Update method won't be able to see it
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
if (Input.GetKeyDown (KeyCode.D))
{
transform.Translate (Vector3.right * moveSpeed);
}
if (Input.GetKeyDown (KeyCode.A))
{
transform.Translate (Vector3.left * moveSpeed);
}
}
} //<-- also - no semicolons after the closing brackets
答案 1 :(得分:1)
为什么到处都有分号?无论如何,那不是问题。
// Use this for initialization
void Start ()
{
int moveSpeed = 5; // remove public
}
// Update is called once per frame
void Update ()
{
if (Input.GetKeyDown (KeyCode.D))
{
transform.Translate (Vector3.right * moveSpeed);
}
if (Input.GetKeyDown (KeyCode.A))
{
transform.Translate (Vector3.left * moveSpeed);
}
}
告诉我这是否有效。
答案 2 :(得分:1)
尝试将其更改为:
public int moveSpeed;
void Start ()
{
moveSpeed = 5;
}
我真正建议的不是在脚本中将moveSpeed设置为5,而是在编辑器中。将代码更改为我显示的内容后,moveSpeed将显示在编辑器检查器中。把它设置为你想要的任何东西。这样,您可以对速度不同的对象使用相同的脚本。