- •Основы 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 Физика
- •Добавление случайных элементов в игру
- •Выбор случайного элемента в массиве
- •Выбор элементов с разной вероятностью
- •Перемешивание списка
- •Выбор элементов из набора без повторений
- •Случайные точки в пространстве
- •Некоторые из моих объектов не отбрасывют или на них не падают тени
Взаимоотношения компонента и скрипта
Когда вы создаете скрипт и присоединяете его к GameObject’у, скрипт появляется в инспекторе GameObject’а в качестве компонента. Это потому, что скрипты становятся компонентами когда они сохраняются - скрипт это определенный тип компонента. С технической точки зрения, скрипт компилируется как тип Component, и рассматривается движком Unity как любой другой компонент. Ещё проще, скрипт – это компонент, который вы создаете сами. Вы будете определять его члены, которые будут отображаться в инспекторе (Inspector), и он будет выполнять все функции, которые вы напишете.
Узнайте больше о создании и использовании скриптов на странице Скриптинг.
Отключение Игровых Объектов (GameObjects)
Отключение Игрового Объекта позволяет временно убрать его со сцены. Для этого можно воспользоваться activeSelf свойством через скрипт, также можно использовать “галочку” активации в инспекторе
“Галочка” активации Игрового Объекта
Результат отключения родителя Игрового Объекта
Если родительский объект деактивирован, его отключение также перезаписывает опцию activeSelf у всех его дочерних элементов, то есть вся иерархия объектов, от родителя до каждого его потомка, становится неактивной. Однако этот процесс не меняет значения свойства activeSelf у дочерних элементов, они вернутся в первоначальное состояние, как только родитель будет снова активирован. Это значит, что нельзя судить, активирован ли в данный момент объект на сцене, по его свойству activeSelf. Вместо него, нужно использовать свойство activeInHierarchy, которое принимает во внимание эффект перезаписывания от родителя.
Такое перезаписывающее поведение впервые появилось в Unity 4.0. В предыдущих версиях была функция под названием SetActiveRecursively, которую можно было использовать, чтобы активировать или деактивировать потомков данного родительского объекта. Однако эта функция отличалась тем, что параметр активации каждого потомка изменялся - можно было включать или отключать всю иерархию, но потомок не имел возможности “запомнить”, в каком состоянии он был изначально. Чтобы код предыдущих версий продолжал работать, SetActiveRecursively осталась и в API к 4.0, но использовать ее не рекомендуется, функция может быть исключена из API в будущем:-
// JavaScript
function DeactivateChildren(g: GameObject, a: boolean) {
g.activeSelf = a;
for (var child: Transform in g.transform) {
DeactivateChildren(child.gameObject, a);
}
}
// C#
void DeactivateChildren(GameObject g, bool a) {
g.activeSelf = a;
foreach (Transform child in g.transform) {
DeactivateChildren(child.gameObject, a);
}
}
Взаимоотношения компонента и скрипта
Теги
A Tag is a word which you link to one or more GameObjects. For instance, you might define “Player” and “Enemy” Tags for player-controlled characters and non-player characters respectively; a “Collectable” Tag could be defined for items the player can collect in the Scene; and so on. Clearly, Tags are intended to identify GameObjects for scripting purposes. We can use them to write script code to find a GameObject by looking for any object that contains our desired Tag. This is achieved using theGameObject.FindWithTag() function.
К примеру:
// Instantiates respawnPrefab at the location
// of the game object with tag "Respawn"
//JS
var respawnPrefab : GameObject;
var respawn = GameObject.FindWithTag ("Respawn");
Instantiate (respawnPrefab, respawn.position, respawn.rotation);
//C#
using UnityEngine;
using System.Collections;
public class Example : MonoBehaviour {
public GameObject respawnPrefab;
public GameObject respawn;
void Start() {
if (respawn == null)
respawn = GameObject.FindWithTag("Respawn");
Instantiate(respawnPrefab, respawn.transform.position, respawn.transform.rotation) as GameObject;
}
}
This saves us having to manually add our GameObjects to a script’s exposed properties using drag and drop – a useful timesaver if the same script code is being used in a number of GameObjects. Another example is a TriggerCollider control script which needs to work out whether the player is interacting with an enemy, as opposed to, say, a random prop or collectable item. Tags make this kind of test easy.
Applying a Tag
The Inspector will show the Tag and Layer->Layers drop-down menus just below any GameObject’s name. To apply a Tag to a GameObject, simply open the Tags drop-down and choose the Tag you require:
The GameObject will now be associated with this Tag.
Creating new Tags
To create a new Tag, click the “Add Tag…” option at the end of the drop-down menu. This will open up the Tag Manager in the Inspector. The Tag Manager is describedhere.
Layers appear similar to Tags, but are used to define how Unity should render GameObjects in the Scene. See the Layers page for more information.
Советы
A GameObject can only have one Tag assigned to it.
Unity includes some built-in Tags which do not appear in the Tag Manager:
“Untagged”
“Respawn”
“Finish”
“EditorOnly”
“MainCamera”
“Player”
and “GameController”.
You can use any word you like as a Tag. (You can even use short phrases, but you may need to widen the Inspector to see the tag’s full name.)
татические GameObjects
Многие оптимизаций нужно знать, если объект может двигаться во время игры. Информация о статических (то есть, не в движении) объекта часто можно предварительно вычислены в редакторе, зная, что он не будет признан недействительным по изменению положения объекта. Например,рендеринга может быть оптимизирована путем объединения нескольких статических объектов в один большой объект, известный как выпечки.
Инспектор по GameObject имеет статический флажок и меню в крайнем верхнем правом, которое используется для информирования различных разных систем единства, что объект не будет двигаться.Объект может быть помечен как статические для каждой из этих систем в отдельности, так что вы можете выбрать, чтобы не рассчитывать статические оптимизацию для объекта, когда он не выгодно.
Статические настройки
Все и Ничто включить или отключить статический статус одновременно для всех систем, которые используют его. Эти системы:Lightmapping: расширенный освещение для сцены;
Окклюдер и Occludee: оказание оптимизации на основе видимости объектов из конкретных положений камеры;
Дозирование: оказание оптимизации, который объединяет несколько объектов в один большой объект;
Навигация: система, которая позволяет вести переговоры символов препятствия в сцене;
Off-сетка Links: соединения, выполненные с помощью системы навигации между разрывными участков сцены.
Отражение зонда: захватывает сферическую вид его окрестностях во всех направлениях.
Использование инспектор (Использование панели Инспектор)
Панель Инспектор используется для того, чтобы просматривать и редактировать Свойства объектов различными способами.
Инспектор отображает геймобъекта с компонентами
Инспектор отображает геймобъекта с компонентами
При выборе GameObject в Иерархии или Сцены View,Инспектор покажет свойств всех компонентов и материалов по этому объекту и позволяет редактировать их. Для пользовательского компонента Script, общественные переменные этого сценария также показаны в инспекторе и могут быть просмотрены и отредактированы, как свойства встроенных компонентов Единству.Это позволяет установить параметры и значения по умолчанию в ваших скриптах легко, без изменения кода.
Кроме того, инспектор используется для отображения настроек импорта ассетов, таких как текстуры, модели, шрифты, и т.д. Некоторые настройки сцены и проекта также отображаются в инспектор,в качестве основного примера можно взять настройки менеджеров.
В этом разделе руководства описаны различные вещи инспектор может сделать, и как вы можете использовать их.
Статические GameObjects
