当我试图将一个变量分配给Rigidbody2D时出错



当我尝试将Rigidbody2D添加到脚本中时,它一直给我错误CS0428:"无法将方法组"GetComponent"转换为非委托类型"Rigidbody2D"。您打算调用该方法吗&";。也许这是我没有看到的东西,但我看了好几遍,没有发现任何错误。

using UnityEngine;
public class characterController : MonoBehaviour
{
public Rigidbody2D rb;
void Start()
{
rb = GetComponent<Rigidbody2D>;
}

void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rb.AddForce(Vector2.up * 500);
}
}
}

我认为您需要在Rigidbody2D后面添加括号,如下所示:

using UnityEngine;
public class characterController : MonoBehaviour { 
public Rigidbody2D rb;
void Start()
{
rb = GetComponent<Rigidbody2D>;
}

void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rb.AddForce(Vector2.up * 500);
}
}
}

若要避免再次出现此问题,请尝试仔细阅读错误消息。例如,通过阅读GetComponents上的文档可以很容易地避免这个问题。

您错过了GetComponent 后面的括号

using UnityEngine;
public class characterController : MonoBehaviour 
{ 
public Rigidbody2D rb;
void Start()
{
rb = GetComponent<Rigidbody2D>();
}

void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rb.AddForce(Vector2.up * 500);
}
}
}

代码没有运行GetComponent()方法并将rb设置为它返回的内容,而是尝试将其设置为委托。

最新更新