变量rb在这个上下文中是不存在的,如果你在rb之前写了public这个词,那么就会出现另一个错误:Type or namespace defenition, or end-of-file expected。在第一种情况下, rb.AddForce 行会导致错误,而在第二种情况下,会导致关闭类主体的花括号。
void Start()
{
public Rigidbody2D rb = gameObject.GetComponent<Rigidbody2D>();
}
void FixedUpdate()
{
RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.up);
Debug.DrawRay(transform.position, Vector2.up*20, Color.white, 1, false);
if(hit.distance <= 15)
{
rb.AddForce(transform.position - hit.transform.position);
}
}
在此示例中,尝试在方法内创建一个字段,这当然是不允许的。字段属于类,而不属于方法 - 方法拥有变量。
我建议将字段声明移动到它需要的位置 - 在方法上方
Start:public Rigidbody2D rb;. 在方法本身中,只留下赋值:然后该字段将在任何上下文中可用:this 和其他类。