Основы Unity 3D Е Основы Unity 3D Данный документ был создан мною для облегчения изучения и работы любого юнитомана, так как в сети не так много информации по Юнити на русском языке. Перевод был начат 16 июня 2013 года в 21:00. Всё описанное здесь является дубли- Страница | 1 Основы Unity 3D рованной версией того что имеется в оригинальной документации, поставляемой вместе с Юнити - просто уже на грамотном русском языке. Из отсебятины тут разве что мелкие вставки во время пояснений каких-либо сложных терминов, в самих статьях, посвященных обсуждению определённых тем, небольшие советы, подсказки, подколки (если кого-то они обидят, то прошу прощения) и мои предисловия-послесловия))-все это будет помечено жёлтым цветом. Визуальные же подсказки будут помечены крас- ным цветом. Также в документацию были добавлены некоторые вспомогательные изображения, которых нет в оригинале. Сделано это было для упрощения усвоения самого материала. Вообщем читаем книгу и наслаждаемся. Лапин Андрей Игоревич – Jandar-man (он же Jandar, Andrewviz, Andrew и Buble-Gangster в одном флаконе). Все права защищены. © 2013, Jandar-man. (Unity Manual) Добро пожаловать в Юнити. Юнити просто создан для тех, кто хочет создавать интересные игры и другой увлекательный мультимедиа контент. Это руководство было создано с целью помочь любому желающему понять как пользоваться Юнити, начиная с базовых и заканчивая продвинутыми техниками. Вы можете прочесть его от начала до конца, либо использовать в качестве напоминалки в повседневной работе. Руководство разделено на несколько разделов. Первый раздел «Руководство Пользователя» (User Guide), посвящён знакомству с интерфейсом Юнити, работой с компонентами для игр (asset workflow), а также основам создания игр на Юнити. Если вы новичок в Юнити, вы дол- жны начать с чтения подраздела под названием «Основы Юнити». Следующий раздел «ЧАВО» (FAQ) - представляет из себя коллекцию часто задаваемых воп- росов, посвященных выполнению основных задач в Юнити,и ответов на них в виде выполнения пользователем пошаговых инструкций. Последний раздел, «Продвинутое» (Advanced) адресован таким проблемам как «оптимизация игры» (Game optimization), «шейдеры» (Shaders), «размеры файлов» (File sizes) и «развёртыва- ние» (Deployment). Когда вы закончите чтение данного руководства, обратитесь также к «Справочному Руко- водству» (Reference Manual) и «Руководству по Скриптингу» (Scripting Reference) для ознаком- ления с другими возможностями по созданию ваших игр на Юнити. Если вы не нашли в данном руководстве ответа на какой-либо из своих вопросов, то вы смо- жете найти их на http://answers.unity3d.com/index.html (ссылка на Unity Answers) или на офи- циальных форумах по Юнити. Плодотворного и приятного вам чтения дамы и господа Команда Юнити и я с ними)) Страница | 2 Основы Unity 3D ОГЛАВЛЕНИЕ: Руководство пользователя (User Guide) - стр. 13 Основы Юнити (Unity Basics) - стр. 18 Изучение интерфейса (Learning the interface) - стр. 19 Обозреватель проектов (Project Browser) – стр. 20 Иерархия (Hierarchy) - стр. 26 Панель инструментов (Toolbar) - стр. 27 Видовое окно сцены (Scene View) - стр. 29 Видовое окно игры (Game View) - стр. 33 Инспектор (Inspector) - стр. 36 Другие видовые окна (Other Views) - стр. 40 Настройка вашего рабочего пространства (Customizing Your Workspace) – стр. 42 Работа с компонентами (Asset Workflow) Создание сцен (Creating Scenes) Издание сборок (Publishing Builds) Горячие клавиши Юнити (Unity Hotkeys) Настройки (Preferences) Сборка сцен (Building Scenes) Игровые Объекты (Game Objects) Связь «Игровой объект-Компонент» (The Game Object-Component Relationship) Использование компонентов (Using Components) Связь «Компонент-Скрипт» (The Component-Script Relationship) Отключение Игровых Объектов (Deactivating Game Objects) Использование инспектора (Using the Inspector) Редактирование свойств значений (Editing Value Properties) Библиотека Пресетов (Preset Libraries) Назначаем ссылки (Assigning References) Редактирование нескольких объектов (Multi-Object Editing) Опции Инспектора (Inspector Options) Использование видового окна сцены (Using the Scene View) Навигация по видовому окну сцены (Scene View Navigation) Позиционирование Игровых Объектов (Positioning Game Objects) Панель управления видового окна сцены (Scene View Control Bar) Поиск (Searching) Заготовки (Prefabs) Источники света (Lights) Камеры (Cameras) Обзор Редактора Ландшафта (Terrain Engine Overview) Создание и импорт компонентов (Asset Import and Creation) Примитивные Объекты (Primitive Objects) Импортирование компонентов (Importing Assets) Импортирование моделей (Importing models) 3Д форматы (3D formats) Материалы и шейдеры (Materials and Shaders) 2Д Текстуры (Texture 2D) Редактор спрайтов (Sprite Editor) Страница | 3 Основы Unity 3D – Оглавление Упаковщик спрайтов (Sprite Packer) Процедурные материалы (Procedural Materials) Анимированные текстуры (Movie Texture) Аудио Файлы (Audio Files) Модули отслеживания (Tracker Modules) Скриптинг (Scripting) Создание и использование скриптов (Creating and Using Scripts) Контролирование объектов путём использования компонентов (Control- ling GameObjects Using Components) Событийные функции (Event Functions) Создание и уничтожение игровых объектов (Creating and Destroying GameObjects) Сопрограммы (Coroutines) Специальные папки и порядок компилирования скриптов (Special Folders and Script Compilation Order) Пространства имён (Namespaces) Атрибуты (Attributes) Хранилище компонентов (Asset Store) Обращение к хранилищу компонентов и навигация в нём (Asset Store Access and Navigation) Администрация хранилища компонентов (Asset Store Publisher Administration) ЧАВО по хранилищу компонентов (Asset Store FAQ) Сервер компонентов (только для Командного типа лицензии) (Asset Server (Team License Only)) Настройка сервера компонентов (Setting up the Asset Server) Кэш Сервер (Только для Командного типа лицензии) (Cache Server (Team License Only)) Кэш Сервер (Только для Командного типа лицензии) (Cache Server (Team License Only)) Кэш Сервер ЧАВО (Cache Server FAQ) За кулисами (Behind the Scenes) Создаём геймплей (Creating Gameplay) Создаём образцы компонентов во время прогона игры (Instantiating Prefabs at runtime) Ввод (Input) Трансформации (Transforms) Физика (Physics) Добавление произвольных элементов геймплея (Adding Random Gameplay Elements) Обзор систем частиц (Particle Systems Overview) Редактор Кривых системы частиц (Particle System Curve Editor) Цвета и градиенты в системе частиц (Сюрикен) (Colors and Gradients in the Particle System (Shuriken)) Редактор Градиентов (Gradient Editor) Инспектор Системы Частиц (Particle System Inspector) Знакомство с Модулями Системы Частиц (Сюрикен) (Introduction to Particle System Modules (Shuriken)) Модули Системы Частиц (Сюрикен) (Particle System Modules (Shuriken)) Эффекты частиц (Сюрикен) (Particle Effects (Shuriken)) Система Анимации «Меканим» (Mecanim Animation System) Страница | 4 Основы Unity 3D – Оглавление Глоссарий терминов по анимации и «Меканим-у» (A Glossary of Animation and Mecanim terms) Подготовка компонентов и их Импорт (Asset Preparation and Import) Использование человекообразных персонажей (Using Humanoid Characters) Подготовка вашего персонажа (Preparing your own character) Импортирование анимаций (Importing Animations) Разбивка анимаций (Splitting Animations) Работа с анимацией человекообразных существ (Working with humanoid animations) Создание Образа (Creating the Avatar) Настройка Образа (Configuring the Avatar) Настройка мышц (Muscle setup) Маска тела для образа (Avatar Body Mask) Переориентация человекообразных анимаций (Retargeting of Humanoid animations) Инверсная кинематика (только для Про Юзеров) (Inverse Kinematics) (Pro only) Стандартные анимации в Меканиме (Generic Animations in Mecanim) Вдыхаем в персонажей жизнь (Bringing Characters to Life) Повторение отрезков анимации (Looping animation clips) Анимационный Компонент и Анимационный Контроллер (Animator Component and Animator Controller) Механизмы анимационных состояний (Animation State Machines) Основы механизма состояний (State Machine Basics) Состояния анимаций (Animation States) Анимационные переходы (Animation Transitions) Параметры анимации (Animation Parameters) Древа смешивания (Blend Trees) 1Д смешивание (1D Blending) 2Д смешивание (2D Blending) Дополнительные опции древа смешиваний (Additional Blend Tree Options) Дополнительные темы по «Меканим-у» (Mecanim Advanced topics) Работа с анимационными кривыми в Меканим-е (Только для Про Юзеров) (Working with Animation Curves in Mecanim (Pro only)) Механизмы подсостояний (Sub-State Machines) Слои анимации (Animation Layers) Предварительный просмотр механизма анимационных состояний, коротко «МАС» (Режим «Самостоятельный» и «Немой») (Animation State Machine Preview (solo and mute)) Совпадение целей (Target Matching) Источник движений – как это работает (Root Motion – how it works) Обучающий урок: скриптинг источника движений для человекообразных анимаций типа «на-месте». (Tutorial: Scripting Root Motion for “in-place” humanoid animations) Производительность и Оптимизация Меканим-а (Mecanim Performance and Optimization) ЧАВО по «Меканим-у» (Mecanim FAQ) Используя видовое окно Анимации (Using the Animation View) Обзор (Overview) Страница | 5 Основы Unity 3D – Оглавление Редактирование ключей и кадров с помощью Шкалы времени (Editing Keys and Keyframes with the Dopesheet) Используя анимационные события (Using Animation Events) Используя “кривые” анимации (Using Animation Curves) Навигация и нахождение путей (Navigation and Pathfinding) Навигационные меши (Navigation Meshes) Реализация навигации персонажа в пространстве (Enabling a Character to Navigate) Вне-мешевые связи (Off-mesh Links) Навигационные слои и поиск кратчайших путей (Navigation Layers and Costs) Звук (Sound) Интерфейсные элементы игры (Game Interface Elements) Сетевой мультиплеер (Networked Multiplayer) Приступая к разработке для ИОС (Getting Started with IOS Development) Основы по работе с ИОС в Юнити (Unity IOS Basics) Дистанционка Юнити (Unity Remote) Скриптинг для ИОС (IOS Scripting) Ввод (Input) Мобильная клавиатура (Mobile Keyboard) Продвинутый скриптинг мобильных устройств в Юнити (Advanced Unity Mobile Scripting) Использование совместимости с АПИ .NET 2.0 (Using .NET API 2.0 compatibility level) Руководство по железу ИОС (IOS Hardware Guide) Оптимизация производительности в ИОС (Optimizing Performance in IOS) Специальные оптимизации для ИОС (IOS Specific Optimizations) Измерение производительности с помощью встроенного Профайлера (Measuring Performance with the Built-in Profiler) Оптимизация размера сборки для ОИС-плеера (проигрывателя) (Optimizing the Size of the Build IOS Player) Настройка Аккаунта (Account Setup) Возможности недоступные на данный момент в Юнити для ИОС (Features currently not supported by Unity IOS) Создание плагинов для ИОС (Building Plugins for IOS) Подготовка вашего приложения для сервиса “Покупка через-приложение” (Preparing your application for "In App Purchases") Настройка заставки для вашего мобильного приложения (Customizing the Splash screen of Your Mobile Application) Разрешение проблем (Trouble Shooting) Сообщения об ошибках работы приложений работающих под ИОС систему (Reporting crash bugs on IOS) Приступая к работе для Андроид (Getting Started with Android Development) Настройка Андроид ППДР(ПО) (Android SDK Setup) Дистанционка для Андроид-а (Android Remote) Разрешение проблем (Trouble Shooting) Сообщения об ошибках работы приложений работающих под Андроид систему (Reporting crush bugs under Android) Возможности недоступные на данный момент в Юнити для Андроид (Features currently not supported by Unity Android) Страница | 6 Основы Unity 3D – Оглавление Поддержка бинарного разделения приложения (.ОВВ) (Support for Split Application Binary (.OBB)) Настройки игрока (Player Settings) Скриптинг на Андроиде (Android Scripting) Создание плагинов для Андроида (Building Plugins for Android) Настройка заставки для вашего мобильного приложения (Customizing the Splash screen of Your Mobile Application) Приступая к разработке на Блэкберри 10 (Getting Started with Blackberry 10 Development) Настройка связи между Юнити и вашим Блэкберри устройством для сборки ваших игр (Setting up Unity to Build to Your Blackberry10 Device) Ньюансы Блэкберри 10 (Blackberry 10 Details) Плагины для Блэкберри 10 (Plugins for Blackberry 10) Контроллер для Блэкберри 10 (Blackberry 10 Controller) Отладка на Блэкберри 10 (Debugging on Blackberry 10) ЧАВО по Блэкберри 10 (Blackberry 10 FAQ) Магазин Windows: вступление (Windows Store: Getting Started) Магазин Windows: развёртывание (Windows Store: Deployment) Магазин Windows: отладка (Windows Store: Debugging) Магазин Windows: профайлер (Windows Store: Profiler) Магазин Windows: аргументы командной строки (Windows Store: Command line arguments) Магазин Windows: плагины (Windows Store: Plugins) Магазин Windows: типы проектов (Windows Store: Project Types) Класс AppCallbacks (AppCallbacks Class) Магазин Windows: ЧАВО (Windows Store: FAQ) Магазин Windows: ЧАВО: WACK (Windows Store: FAQ: WACK) Магазин Windows: примеры (Windows Store: Examples) Windows Phone 8: вступление (Windows Phone 8: Getting Started) Windows Phone 8: развёртывание (Windows Phone 8: Deployment) Windows Phone 8: отладка (Windows Phone 8: Debugging) Windows Phone 8: профайлер (Windows Phone 8: Profiler) Пошаговое руководство по взаимодействию между собой Unity и Windows Phone (Interaction between Unity and Windows Phone step by step guide) Windows Phone 8: плагины (Windows Phone 8: Plugins) Пошаговое руководство по использованию плагинов для Windows Phone (на C#) (Windows Phone Plugins step by step guide (using C#)) Пошаговое руководство по использованию плагинов для Windows Phone (на C++) (Windows Phone Plugins step by step guide (using C++)) Windows Phone 8: ЧАВО (Windows Phone 8: FAQ) Примеры для Windows Phone 8 (WP8 Examples) Приступая к работе над разработкой Нативного (Родного) Клиента (Getting Started with Native Client Development) Приступая к работе над разработками под Флэш (Getting Started with Flash Development) Флэш: Установка. (Flash: Setup) Флэш: Сборка и Запуск. (Flash: Building & Running) Флэш: Отладка. (Flash: Debugging) Флэш: Что поддерживается, а что нет. (Flash: What is and is not supported) Страница | 7 Основы Unity 3D – Оглавление Флэш: Встраивание Флэш контента, созданного при помощи Юнити в большие Флэш проекты. (Flash: Embedding Unity Generated Flash Content in Larger Flash Projects) Пример: Снабжение данными Юнити из Флэш-а. (Example: Supplying Data from Flash to Unity) Пример: Вызов функций ActionScript из Юнити. (Example: Calling ActionScript Functions from Unity) Пример: Связь JavaScript с браузером. (Example: Browser JavaScript Communication) Пример: Доступ к стадиям. (Example: Accessing the Stage) Пример: Флэш переменные. (Example: Flash Vars) ЧАВО (FAQ) Руководство по переходу с версии Юнити 3.5 на 4.0 (Upgrade Guide from Unity 3.5 to 4.0) Руководство по обновлениям в Юнити 3.5 (Unity 3.5 Upgrade guide) Обновление ваших Юнити проектов с версии от 2.х до 3.х (Upgrading your Unity Projects from 2.x to 3.x) Описание обновлений в физике (Physics Upgrade Details) Описание обновлений в среде «Моно» (Mono Upgrade Details) Описание обновлений в Рендеринге (Rendering Upgrade Details) Руководство по изменениям, коснувшихся шейдеров в Юнити 3.х. (Unity 3.x Shader Conversion Guide) Активация Юнити 4.0 – Обзор (Unity 4.0 Activation – Overview) Управление вашей Юнити 4.х лицензией (Managing your Unity 4.x license) Пошаговое руководство по онлайн активации Юнити 4.0 (Step-by-Step Guide to Online Activation of Unity 4.0) Пошаговое руководство по ручной активации Юнити 4.0 (Step-by-Step Guide to Manual Activation of Unity 4.0) Вопросы по игровому кодингу (Game Code Questions) Как создать простую прогулочную сценку с видом от первого лица? (How to make a simple first person walkthrough?) Вопросы по графике (Graphics Questions) Как мне импортировать Альфа Текстуры? (How do I import Alpha Textures?) Как мне использовать Карты Нормалей? (How do I use Normal Maps?) Как мне использовать Детализирующие Текстуры? (How do I use Detail Textures?) Как мне создать Кубическую Текстуру? (How do I Make a Cubemap Texture?) Как мне создать Скайбокс? (How do I make a Skybox?) Как мне создать источник частиц, привязанный к 3Д модели? (старая система частиц) (How do I make a Mesh Particle Emitter? (Legacy Particle System)) Как мне создать заставку? (How do I make Splash Screen?) Как мне создать световую тень? (How do I make a Spot Light Cookie?) Как мне исправить угол поворота импортированной модели? (How do I fix the rotation of an imported model?) Как мне использовать воду? (How do I use Water?) Руководство по экспорту в формат FBX (FBX export guide) Наглядное Руководство по работе с графическими компонентами (Art Asset Best-Practice Guide) Как мне импортировать модели из моей программы по 3Д моделированию? (How do I import Models from my 3D app?) Страница | 8 Основы Unity 3D – Оглавление Импортирование объектов из Maya (Importing Objects From Maya) Импортирование объектов из Cinema 4D (Importing Objects From Cinema 4D) Импортирование объектов из 3DS Max (Importing Objects From 3DS Max) Импортирование объектов из Cheetah3D (Importing Objects From Cheetah3D) Импортирование объектов из Modo (Importing Objects From Modo) Импортирование объектов из Lightwave (Importing Objects From Lightwave) Импортирование объектов из Blender (Importing Objects From Blender) Использование Blender-a и его модуля для риггинга персонажей Rigify (Using Blender and Rigify) Вопросы, связанные с рабочим процессом (Workflow Questions) Начинаем работать со средой Mono Develop (Getting started with Mono Develop) Как можно повторно использовать компоненты в других проектах? (How do I reuse assets between projects?) Как мне установить новые компоненты или обновить стандартные? (How do I install or upgrade Standard Assets?) Портирование проекта на другие платформы (Porting a Project Between Platforms) Список заметок для разработчика мобильных приложений (Mobile developer checklist) Сбои (Crashes) Профайлинг (Profiling) Оптимизации (Optimizations) Продвинутое (Advanced) Книга рецептов по векторному программированию (Vector Cookbook) Понимание арифметики векторов (Understanding Vector Arithmetic) Направление и дистанция от одного объекта до другого (Direction and Distance from One Object to Another) Расчёт Нормального/Перпендикулярного вектора (Computing a Normal/Perpendicular vector) Глубина величины одного вектора лежащего в направлении другого вектора (The amount of One Vector’s Magnitude that Lies in Another Vector’s Direction) Сборники компонентов (Только для Про Юзеров) (AssetBundles (Pro only)) ЧАВО по сборникам компонентов (AssetBundles FAQ) Сборка сборников компонентов (Building AssetBundles) Скачивание сборников компонентов (Downloading AssetBundles) Загрузка ресурсов из сборников компонентов (Loading resources from AssetBundles) Отслеживание загруженных сборников компонентов (Keeping track of loaded AssetBundles) Хранение и загрузка бинарных (двоичных) данных в сборники компонентов (Storing and loading binary data in an AssetBundle) Защита содержимого (контента) (Protecting Content) Управление зависимостями компонентов (Managing asset dependencies) Включение скриптов в сборники компонентов (Including scripts in AssetBundles) Особенности графики (Graphics Features) Технология визуализации ВДД (высокого динамического диапазона) в Юнити (HDR (High Dynamic Range) Rendering in Unity) Режимы рендеринга (режимы просчёта изображения) (Rendering Paths) Линейное освещение (Только для Про Юзеров)(Linear Lighting (Pro Only)) Страница | 9