- •Основы Unity
- •Обозреватель проекта
- •Поиск по Asset Store
- •Клавиши быстрого доступа
- •Иерархия
- •Окно Scene
- •Навигация в окне Scene
- •Позиционирование игровых объектов.
- •Инструмент Rect Tool
- •Панель управления окна Scene View
- •Инспектор
- •Префабы
- •Customizing Your Workspace (Настройка рабочего пространства)
- •Asset Workflow (работа с ассетами)
- •Создание ассета
- •Обновление ассетов
- •Создание сцен
- •Инстанциирование префабов
- •Добавление компонентов и скриптов
- •Размещение GameObject’ов
- •Работа с камерами
- •Источники света
- •Публикация сборок
- •Потоковая загрузка в веб-плеере
- •Автономное развёртывание веб-плеера
- •Сборка standalone плееров
- •В недрах процесса сборки
- •Предварительная загрузка (далее - прелоадинг)
- •Вы готовы собирать игры
- •Сочетания клавиш Unity
- •Preferences (Настройки редактора)
- •General (Основные)
- •External Tools (Внешние инструменты)
- •Colors (Цвета)
- •Keys (Клавиши)
- •Cache Server (Кэш сервер)
- •Взаимосвязь между GameObject’ом и компонентом
- •Компонент Transform
- •Другие компоненты
- •Использование компонентов
- •Добавление компонентов
- •Редактирование компонентов
- •Взаимоотношения компонента и скрипта
- •Отключение Игровых Объектов (GameObjects)
- •Результат отключения родителя Игрового Объекта
- •Едактирование свойств
- •Значения
- •Градиенты
- •Массивы
- •Редактирование нескольких объектов одновременно
- •Библиотеки предустановок
- •Как создать предустановку цвета:
- •Настройки инспектора
- •Блокировка
- •Режимы Нормальный/Отладка
- •Сочетания клавиш, которые можно использовать без инструмента Hand
- •Режим полета
- •Гизмо сцены
- •Жесты в Mac на трекпаде
- •Позиционирование игровых объектов
- •Перемещение, вращение и масштабирование
- •Переключатели отображения гизмо
- •Поиск в сцене
- •Поиск по проекту и метки
- •Префабы (Prefabs)
- •Использование префабов
- •Редактирование префаба из его экземпляров
- •Источники света
- •Способы рендеринга
- •Больше информации
- •Создание геймплея.
- •Создание экземпляров префабов во время работы приложения
- •Общие сценарии
- •Построение стены
- •Создание экземпляров ракет и взрывов
- •Замена персонажа на Ragdoll или обломки
- •Размещение группы объектов по заданному шаблону
- •Традиционный игровой ввод
- •Добавление новых осей ввода
- •Использование осей ввода из скриптов
- •Названия кнопок
- •Ввод на мобильном устройстве
- •Симуляция Мыши
- •Акселерометр
- •Фильтр низких частот
- •Я хочу получить как можно более точные показания акселерометра. Что я должен делать?
- •Предварительный просмотр текста
- •Видимость и размер клавиатуры
- •Наследование
- •Проблемы производительности и ограничения неравномерного (Non-Uniform) масштабирования
- •Важность масштаба
- •Подсказки по работе с компонентами Transform
- •Геймплей в 2d
- •2D Графика
- •2D Физика
- •Добавление случайных элементов в игру
- •Выбор случайного элемента в массиве
- •Выбор элементов с разной вероятностью
- •Перемешивание списка
- •Выбор элементов из набора без повторений
- •Случайные точки в пространстве
- •Некоторые из моих объектов не отбрасывют или на них не падают тени
Наследование
Наследование - один из самых важных концептов, который следует понимать при использовании Unity. Когда GameObject является родительским для другого объекта, дочерний GameObject будет двигаться, вращаться и менять размер в той же степени, что и родительский объект. Вы можете представлять наследование как связь между вашими руками и вашим телом; когда ваше тело движется, то ваши руки также двигаются вместе с ним. Дочерние объекты могут иметь и свои дочерние объекты и так далее. Таким образом, ваши ладони могут считаться “детьми” ваших рук, а у каждой ладони есть несколько пальцев и т.д. Любой объект может иметь несколько “детей”, но только одного родителя. Эти многоуровневые связи родители-дети формируют иерархию трансформаций. Объект на самом верху иерархии (т.е. единственный объект, у которого нет родителя) известен как root (корень).
Вы можете создать родительский объект перетягиванием любого GameObject’а в окне Hierarchy на другой объект. Это создаст связь родительский-дочерний между двумя игровыми объектами.
Пример
родительской иерархии. Объекты с
раскрывающимися стрелками слева от их
имён являются родительскими.
Учтите, что значения Transform в инспекторе для любого дочернего объекта показаны относительно значений Transform родительского объекта. Эти значения известны как локальные координаты. Возвращаясь к аналогии тела и рук, положение вашего тела может изменяться по мере ходьбы, но ваши руки будут присоединены в одном и том же месте относительно тела. Для построения сцены обычно достаточно работать с локальными координатами для дочерних объектов, но во время игрового процесса зачастую полезно найти их точное положение в мировом пространстве или их мировые координаты. API скриптинга для компонента Transform имеет отдельные настройки для локальных и мировых координат.
Проблемы производительности и ограничения неравномерного (Non-Uniform) масштабирования
Неравномерное масштабирование (Non-uniform Scaling) - это когда параметр Scale в Transform имеет разные значения для x, y, и z; например (2, 4, 2). И наоборот, при равномерном масштабировании, x, y и z имеют одинаковые значения; например (3, 3, 3). Неравномерное масштабирование может быть полезно в некоторых особых случаях, но вам лучше стараться этого избегать, поскольку это замедляет рендеринг графики. Также могут появиться некоторые странности, которых не бывает при равномерном масштабировании:-
Некоторые компоненты не имеют полной поддержки неравномерного масштабирования. Например у некоторых компонентов есть круглый или сферический элемент с заданным параметром radius. Среди таких компонентов есть Sphere Collider, Capsule Collider, Light и Audio Source. В подобных случаях круглая форма не станет эллиптической под влиянием неравномерного масштабирования, а просто останется круглой.
Если у дочернего объекта есть неравномерно отмасштабированный родитель, и он (дочерний объект) повёрнут относительно родителя, он может стать перекошенным или “сдвинутым”. Есть компоненты, которые поддерживают простое неравномерное масштабирование, но некорректно работают такими перекосами. Например, перекошенный Box Collider не будет точно совпадать с формой меша.
По причинам производительности, масштаб дочернего объекта неравномерно отмасштабированного родителя не будет автоматически обновлён при вращении. В результате, форма дочернего объекта может резко измениться, после того как масштаб уже обновился, например, после отделения дочернего объекта от родителя.
