- •Основы 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 Физика
- •Добавление случайных элементов в игру
- •Выбор случайного элемента в массиве
- •Выбор элементов с разной вероятностью
- •Перемешивание списка
- •Выбор элементов из набора без повторений
- •Случайные точки в пространстве
- •Некоторые из моих объектов не отбрасывют или на них не падают тени
Случайные точки в пространстве
Можно присвоить каждой компоненте Vector3 случайное значение, возвращаемое Random.value для получения случайной точки в пространстве куба:-
var randVec = Vector3(Random.value, Random.value, Random.value);
Это даст вам точку в кубе с ребром длиной в одну условную единицу. Куб можно масштабировать просто умножая X, Y и Z компоненты вектора на требуемые длины сторон. Если одна из осей имеет нулевое значение, точка всегда будет лежать на плоскости. Например, получение случайно точки “на земле” обычно достигается с помощью получения случайных компонент X и Z с установкой Y компоненты в ноль.
Если объёмом является сфера (т.е., когда вы желаете разместить случайную точку в указанном радиусе от начала отсчёта), вы можете использовать значение Random.insideUnitSphere, умноженное на нужный радиус :-
var randWithinRadius = Random.insideUnitSphere * radius;
Учтите, если вы установите одну из компонент получившегося вектора в ноль, вы не получите правильную случайную точку в круге. Хоть точка и действительно случайна, и расположена в области правильного радиуса, точка с большей вероятностью окажется ближе к краю окружности, так что точки будут распределены очень неравномерно. Для этой задачи следует использовать Random.insideUnitCircle:-
var randWithinCircle = Random.insideUnitCircle * radius;
Геймплей в 2D
Решение проблем
Этот раздел посвящен распространенным проблемам, которые могут возникнуть при использовании Unity. Каждой платформе посвящён отдельный подраздел.
Решение проблем платформы
Geforce 7300GT при использовании OSX 10.6.4
Отложенный рендеринг отключён, т.к. материалы отображаются некорректно на Geforce 7300GT при использовании OSX 10.6.4; Это случается из-за проблемных видео драйверов.
В 64-битной версии Windows, Unity крашится когда мой скрипт выбрасывает NullReferenceException.
Пожалуйста, примените Windows Hotfix #976038.
Редактирование скрипта
Можно ли как-нибудь избавиться от страницы приветствия в MonoDevelop?
Да. В настройках MonoDevelop перейдите в раздел Visual Style и снимите галочку с пункта “Load welcome page on startup”.
Почему мой скрипт открывается в MonoDevelop, хотя я выбрал Visual Studio на роль редактора скриптов?
Это происходит, когда Visual Studio сообщает о том, что не смог открыть ваш скрипт. Обычно это случается из-за того, что внешний плагин (например, Resharper), открывает диалоговое окно на запуске, запрашивая ввода информации от пользователя - именно это и вынуждает VS заявить о неудавшейся попытки открытия скрипта.
Графика
Низкий FPS и/или графические артефакты.
Это может произойти, если драйвера вашей видеокарты устарели. Убедитесь, что у вас установлена последняя версия драйверов от производителя вашей карты.
Тени
Тени также требуют определённой поддержки в графическом оборудовании. См. Тени для деталей.
Убедитесь, что тени не выключены в пункте меню Quality Settings(Настройки качества).
Тени на Android и iOS имеют свои ограничения: мягкие тени недоступны и при Forward-рендеринге, лишь один направленный источник света может отбрасывать тени. Но при отложенном рендеринге нет лимита на количество источников света, отбрасывающих тень.
