当我尝试将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
设置为它返回的内容,而是尝试将其设置为委托。