Ошибка при попытке присвоить переменную Rigidbody2D - PullRequest
0 голосов
/ 02 августа 2020

Когда я пытаюсь добавить 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);
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 02 августа 2020

Вы пропустили круглые скобки после 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 в качестве возвращаемого значения код пытается установить его как делегата.

0 голосов
/ 02 августа 2020

Я думаю, вам нужно добавить скобки после 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...