字段初始值设定项不能引用非静态字段方法或属性'Component.GetComponent <rigidbody>()'

时间:2016-08-31 05:27:33

标签: c# unity3d unity5

我不知道发生了什么,我正在尝试遵循Unity 4中编写的教程,并且已经发生了很多变化。这是我已经得到的,现在我被卡住了。

public class PlayerMovement : MonoBehaviour
{
    public float moveSpeed;

    public static Rigidbody rb = GetComponent<Rigidbody>();
    private Vector3 input;

    // Use this for initialization
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        input = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
        GetComponent<Rigidbody>().AddForce(input);
    }
}

1 个答案:

答案 0 :(得分:0)

您无法在功能外使用Unity的GetComponent功能。把它放在一个函数中你应该没问题。在这种情况下,将其置于Start() Awake()函数中是合适的。

public class PlayerMovement : MonoBehaviour
{
    public float moveSpeed;

    public static Rigidbody rb;
    private Vector3 input;

    // Use this for initialization
    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    // Update is called once per frame
    void Update()
    {
        input = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
        GetComponent<Rigidbody>().AddForce(input);
    }
}