字段初始化器不能引用非静态字段方法或属性'Component.GetComponent()
本文关键字:字段 GetComponent Component Rigidbody 属性 不能 初始化 引用 方法 静态 | 更新日期: 2023-09-27 18:04:55
我不知道发生了什么,我正试图遵循在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);
}
}
你不能在函数之外使用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);
}
}