0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: unity, ресурсы, шаблонные экземпляры</p>
1
<p>Теги: unity, ресурсы, шаблонные экземпляры</p>
2
<p>Ресурсами в Unity называют расположенные на диске сущности, из которых и состоит игровой проект. В частности, к ресурсам относят сети (модели), звуки, спрайты, текстуры и пр.</p>
2
<p>Ресурсами в Unity называют расположенные на диске сущности, из которых и состоит игровой проект. В частности, к ресурсам относят сети (модели), звуки, спрайты, текстуры и пр.</p>
3
<p>Когда<a>сцены</a>, создаваемые разработчиком, сериализуются на диск, система представляет их в качестве ресурсов, которые, в свою очередь, состоят из<a>игровых объектов</a>.</p>
3
<p>Когда<a>сцены</a>, создаваемые разработчиком, сериализуются на диск, система представляет их в качестве ресурсов, которые, в свою очередь, состоят из<a>игровых объектов</a>.</p>
4
<p>Кстати, если игровые объекты часто переиспользуются, их можно превратить в ресурс, называемый "шаблонным экземпляром" (<strong>prefab</strong>), но об этом чуть ниже. Кроме того, ресурсы могут представлять собой менее "осязаемые" объекты, допустим, те же карты контроля ввода, настройки графики, строковые БД для интернационализации и так далее. Еще разработчик может создавать свои типы ресурсов, используя<strong>ScriptableObjects</strong>.<a>Вот</a>, к примеру, соответствующая статья на эту тему.</p>
4
<p>Кстати, если игровые объекты часто переиспользуются, их можно превратить в ресурс, называемый "шаблонным экземпляром" (<strong>prefab</strong>), но об этом чуть ниже. Кроме того, ресурсы могут представлять собой менее "осязаемые" объекты, допустим, те же карты контроля ввода, настройки графики, строковые БД для интернационализации и так далее. Еще разработчик может создавать свои типы ресурсов, используя<strong>ScriptableObjects</strong>.<a>Вот</a>, к примеру, соответствующая статья на эту тему.</p>
5
<p>В чем важность ресурсов? Дело в том, что когда проект находится в разработке, ресурсы являются<strong>ключевой информационной составляющей кодовой базы</strong>, вместе с кодом как таковым. Что касается готового пакета с игрой, то в нем содержится большая часть ваших ресурсов. И эти ресурсы будут сохранены на диске того устройства, на которое инсталлирована игра.</p>
5
<p>В чем важность ресурсов? Дело в том, что когда проект находится в разработке, ресурсы являются<strong>ключевой информационной составляющей кодовой базы</strong>, вместе с кодом как таковым. Что касается готового пакета с игрой, то в нем содержится большая часть ваших ресурсов. И эти ресурсы будут сохранены на диске того устройства, на которое инсталлирована игра.</p>
6
<h2>Шаблонные экземпляры</h2>
6
<h2>Шаблонные экземпляры</h2>
7
<p>Как известно, игровые объекты, параметры ввода и<a>компоненты</a>игровых объектов существуют в сцене в качестве отдельных экземпляров. Однако бывают ситуации, когда объекты определенного класса постоянно повторяются. В таком случае<strong>объекты можно оформить в качестве шаблонов</strong>, причем каждый их этих шаблонов будет, по факту, являться объектом в виде ресурса.</p>
7
<p>Как известно, игровые объекты, параметры ввода и<a>компоненты</a>игровых объектов существуют в сцене в качестве отдельных экземпляров. Однако бывают ситуации, когда объекты определенного класса постоянно повторяются. В таком случае<strong>объекты можно оформить в качестве шаблонов</strong>, причем каждый их этих шаблонов будет, по факту, являться объектом в виде ресурса.</p>
8
<p>Шаблоны экземпляров в сцене можно локально модифицировать - это позволит вам их различать. К примеру, если у нас есть объект<em>дерево</em>, выполненный в виде шаблона, то мы сможем создавать экземпляры деревьев различной высоты. Таким образом, все экземпляры, которые будут выполнены по одному шаблону, станут наследовать от него соответствующие данные и переопределять их.</p>
8
<p>Шаблоны экземпляров в сцене можно локально модифицировать - это позволит вам их различать. К примеру, если у нас есть объект<em>дерево</em>, выполненный в виде шаблона, то мы сможем создавать экземпляры деревьев различной высоты. Таким образом, все экземпляры, которые будут выполнены по одному шаблону, станут наследовать от него соответствующие данные и переопределять их.</p>
9
<h4>Вложенные шаблоны</h4>
9
<h4>Вложенные шаблоны</h4>
10
<p>Уже, начиная с Unity 2018.3, появилась поддержка вложенных шаблонов. Основные концепции следующие:</p>
10
<p>Уже, начиная с Unity 2018.3, появилась поддержка вложенных шаблонов. Основные концепции следующие:</p>
11
<ol><li>Родительский объект с дочерними объектами, которые представлены в качестве шаблонов, можно представить тоже в виде шаблона. При этом внутри родительского шаблона у дочернего шаблона допускается наличие собственных модификаций. Кроме того, в сцене инстанцируется сразу вся шаблонная иерархия, и поверх нее тоже можно надстраивать модификации, которые специфичны для конкретной сцены.</li>
11
<ol><li>Родительский объект с дочерними объектами, которые представлены в качестве шаблонов, можно представить тоже в виде шаблона. При этом внутри родительского шаблона у дочернего шаблона допускается наличие собственных модификаций. Кроме того, в сцене инстанцируется сразу вся шаблонная иерархия, и поверх нее тоже можно надстраивать модификации, которые специфичны для конкретной сцены.</li>
12
<li>Шаблонный экземпляр, который находится в сцене и снабжен своими локальными модификациями, можно сохранить в качестве самостоятельного ресурса "Prefab Variant". Данный вариант - это шаблонный ресурс, который наследует от другого шаблона, причем поверх него задействованы дополнительные модификации.</li>
12
<li>Шаблонный экземпляр, который находится в сцене и снабжен своими локальными модификациями, можно сохранить в качестве самостоятельного ресурса "Prefab Variant". Данный вариант - это шаблонный ресурс, который наследует от другого шаблона, причем поверх него задействованы дополнительные модификации.</li>
13
</ol><p>Вышеописанные концепции можно, кстати, компоновать: в частности, возможен шаблонный вариант вложенного шаблона либо даже шаблонный вариант шаблонного варианта.</p>
13
</ol><p>Вышеописанные концепции можно, кстати, компоновать: в частности, возможен шаблонный вариант вложенного шаблона либо даже шаблонный вариант шаблонного варианта.</p>
14
<p><em>По материалам статьи "<a>Basic Concepts in Unity for Software Engineers</a>".</em></p>
14
<p><em>По материалам статьи "<a>Basic Concepts in Unity for Software Engineers</a>".</em></p>
15
15