Особенности Кэширования Компонентов В Unity3D

Большинство разработчиков Unity знают, что не следует злоупотреблять ресурсоемкими операциями, такими как выборка компонентов.

Для этого вам следует использовать кэширование .

Но даже для такой простой оптимизации можно найти несколько разных подходов.

В этой статье будут рассмотрены различные варианты кэширования, их неочевидные особенности и производительность.



Особенности кэширования компонентов в Unity3D

Стоит отметить, что в основном мы будем говорить о «внутреннем» кэшировании, то есть получении тех компонентов, которые есть на текущем объекте, для его внутренних нужд. Для начала откажемся от прямого назначения зависимостей в инспекторе — это неудобно в использовании, засоряет настройки скрипта и может привести к неработающим ссылкам при сбое редактора.

Поэтому мы будем использовать GetComponent().

Базовые знания компонентов и простой пример кэширования.

В Unity3D каждый объект игровой сцены представляет собой контейнер (GameObject) для различных компонентов (Component), которые могут быть как встроены в движок (Transform, AudioSource и т. д.), так и в пользовательские скрипты (MonoBehaviour).

Компонент можно назначить прямо в редакторе, а для получения компонента из контейнера в скрипте используется метод GetComponent().

Если компонент необходимо использовать более одного раза, традиционный подход — объявить для него переменную в скрипте, где он будет использоваться, один раз взять необходимый компонент и затем использовать полученное значение.

Пример:

   

public class Example : MonoBehaviour {

Теги: #C++ #Разработка игр #кэширование #unity3d #gamedev #теги всё равно никто не читает #Разработка игр #C++ #unity
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.