Страница 1 из 1

Нужен ли GetComponent?

СообщениеДобавлено: 29 ноя 2019, 15:26
ArcadyiM
Почему все используют такой скрипт на объекте с rigidbody?
Синтаксис:
Используется csharp
public Rigidbody rb;

void Start()
{
rb = GetComponent<Rigidbody>();
}

void Update()
{
 rb.velocity/AddForce/ и.т.д.
}

 

И в инспекторе указывают твердое тело на этом же объекте.
Ведь public Rigidbody rb; уже позволяет использовать rb.
А GetComponent получает это Rigidbody ещё раз.
Это действительно ошибка многих или я просто дурачек и не понимаю что-то элементарное?

Re: Нужен ли GetComponent?

СообщениеДобавлено: 29 ноя 2019, 15:48
Friend123
Кто все-то? Я лично так не делаю, но тут возможно человек делает "на всякий случай", чтобы переменная была инициализирована.

Re: Нужен ли GetComponent?

СообщениеДобавлено: 29 ноя 2019, 15:49
1max1
Если рб указывается в инспекторе, то геткомпонент не нужен.

Re: Нужен ли GetComponent?

СообщениеДобавлено: 29 ноя 2019, 16:14
Jarico
Проверку на null делаешь и если Rigidbody == null то GetComponent

Re: Нужен ли GetComponent?

СообщениеДобавлено: 01 дек 2019, 08:20
StupidMoth
GetComponent используют в таких случаях:
Синтаксис:
Используется csharp
public GameObject obj;
private Rigidbody rb;
...
rb = obj.GetComponent<Rigidbody>();
 

Или так:
Синтаксис:
Используется csharp
private Rigidbody rb;
...
rb = GetComponent<Rigidbody>();
 

Но не так, как написано у вас.

Re: Нужен ли GetComponent?

СообщениеДобавлено: 01 дек 2019, 09:44
Jarico
StupidMoth писал(а):GetComponent используют в таких случаях:
Синтаксис:
Используется csharp
public GameObject obj;
private Rigidbody rb;
...
rb = obj.GetComponent<Rigidbody>();
 

Или так:
Синтаксис:
Используется csharp
private Rigidbody rb;
...
rb = GetComponent<Rigidbody>();
 

Но не так, как написано у вас.


Автор так и написал =))

Re: Нужен ли GetComponent?

СообщениеДобавлено: 01 дек 2019, 10:53
seaman
Автор так и написал

Не так. Читайте внимательно.

Re: Нужен ли GetComponent?

СообщениеДобавлено: 01 дек 2019, 18:22
alew
1max1 писал(а):Если рб указывается в инспекторе, то геткомпонент не нужен.


Я тоже чего то не понимаю. Если не написать rb = GetComponet.. то в консоли вываливается ошибка при обращение к RigidBody, даже если он есть в инспекторе.

Re: Нужен ли GetComponent?

СообщениеДобавлено: 01 дек 2019, 18:35
seaman
Показывайте скрины - есть в инспекторе, ошибка, как пытаетесь получить...