Это хороший синтаксис? [Unity]

Является ли этот синтаксис хорошим и эффективным, или же стоит получать компоненты в методе Start?

private Rigidbody2D Rb => GetComponent<Rigidbody2D>();
    private Player Player => GetComponent<Player>();

Ответы (1 шт):

Автор решения: KOTlK

Это ничем не отличается от обычного вызова GetComponent. Rb в данном случае это просто:

private Rigidbody2D Rb { get { return GetComponent<Rigidbody2D>(); } }

Мы получаем компоненты в методе старт не для того, чтобы был синтаксис лучше, а для того, чтобы закэшировать какой-то компонент, к которому будем часто обращаться. Так как GetComponent затратная по времени операция, то очень частое его использование может привести к потере производительности

→ Ссылка