首页 > 解决方案 > 尝试将变量分配给 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);
        }
    }
}

标签: c#unity3d

解决方案


我认为您需要像这样在 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 上的文档可以轻松避免此问题。


推荐阅读