Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Unity Game Development Essentials RUS

.pdf
Скачиваний:
6575
Добавлен:
12.04.2015
Размер:
8.03 Mб
Скачать

Наклонный Предел: Принимая во внимание идущее в гору движение, этот параметр позволяет Вам определять, насколько крутой наклонная поверхность может быть прежде, чем характер больше не может идти по специфической наклонной поверхности. Включением этого параметра Диспетчер Характера останавливает игрока от простого хождения по вертикальным стенам или крутым областям земли, которая конечно казалась бы нереалистичной.

Погашение Шага: Поскольку Ваш мир игры может хорошо показать лестницу, этот параметр позволяет Вам определять, как далеко от основания характер может подойти - чем выше ценность, тем больший расстояние они могут подойти.

Ширина Кожи: Поскольку характер столкнется с другими объектами игры в сцене, часто на скорости, этот параметр обеспечен, чтобы позволить Вам определять, как глубоко другие коллайдеры могут пересечься с коллайдером характера без реакции. Это разработано, чтобы помочь уменьшить конфликты с объектами, результатом которых может быть дрожание (небольшая, но постоянная встряска характера) или характер, застревающий в стенах. Это происходит, когда два коллайдера внезапно пересекутся, не позволяя время двигателя игры реагировать соответственно - вместо аварии, двигатель выключит коллайдеры, чтобы остановить контроль или вызвать коллайдеры обособленно неочевидно. Технологии Unity рекомендуют, чтобы Вы установили ширину кожи в 10 процентов параметра радиуса Вашего характера.

Расстояние Движения Минуты: Это - самое низкое количество,

которым может быть перемещен Ваш характер. Обычно набор к нолю, устанавливая эту ценность в большее число означает, что Ваш характер не может переместиться, если они не будут перемещены кроме того ценность. Это вообще только используется, чтобы уменьшить дрожание, но в большинстве ситуаций оставлен установленным в 0.

Центр: Набор как Vector3 (x, y, z ценности). Это позволяет Вам помещать коллайдер характера далеко от его местной центральной точки. Обычно в ноле, это чаще используется для характеров третьего лица, у которых будет более сложный взгляд чем простая капсула. Разрешая Вам переместить координату Y, например это позволяет Вам объяснить, где ноги характера поражают пол как, это

- коллайдер Диспетчера Характера, который определяет, где объект игрока опирается на основание, а не визуальную петлю ног характера.

Коллайдер Диспетчера Характера представлен в представлении Сцены зеленой схемой формы капсулы, таким же образом как другие коллайдеры в Unity. В следующем изображении я имею временно выведенный из строя предоставление визуальной части Графики FPC, чтобы помочь Вам определить схему Диспетчера Характера:

61

Взгляд Мыши (Подлинник)

Написанный в C#, этот подлинник отвечает за превращение нашего характера, поскольку мы перемещаем мышь, оставляя горизонтальные ключи движения, чтобы обращаться с обстрелом. У этого подлинника есть много общественных variables участника, выставленных для регулирования:

Топоры: Набор к MouseX в этом случае. Этот Variables позволяет Вам выбирать MouseX, Мышиный, или MouseXAndY. В нашем FPC мы нуждаемся в этом случае подлинника Взгляда Мыши (другой случай, являющийся компонентом Главного детского объекта Камеры), чтобы быть установленными в Ось X только, поскольку это позволит движение мыши в левом и правом направлении, чтобы вращать весь характер - Главный детский включенный объект Камеры.

Вы можете задаваться вопросом, почему у нас просто нет топоров MouseXAndY выбранными на Взгляде Мыши составляющий для Главного объекта Камеры. Проблема с этим подходом состояла бы

втом, что, в то время как он позволит камере наклонять и готовить в кастрюле в обоих топоры, он не держал бы столкновение характера, где мы смотрим - он просто вращал бы камеру в местном масштабе. В результате мы могли озираться, но когда мы перемещали характер с ключами, мы убежим в случайном направлении. При наличии этого случая подлинника Взгляда Мыши на родительском объекте (Первый Диспетчер Человека), мы позволяем этому вращать характер, который в свою очередь готовит

вкастрюле камеру, потому что это - ребенок и будет соответствовать вращению ее родителя.

Чувствительность X/Sensitivity Y: Поскольку мы только используем Ось X этого подлинника, этот Variables будет только управлять, насколько левое/правильное движение мыши затрагивает вращение объекта. Если бы Variables Топоров собирался включать Ось Y, то это управляло бы, насколько чувствительный или вниз движение мыши было при воздействии наклона камеры. Вы заметите, что Чувствительность Y была установлена в 0, поскольку мы не используем ее, в то время как Чувствительность X установлена в 15 - чем выше ценность здесь, тем быстрее вращение.

Минимальный X/Maximum X: Это позволяет Вам ограничивать

количество, которое Вы можете подвергнуть резкой критике вокруг, поскольку этот подлинник отвечает за превращение характера. Это количество установлено в-360 и 360 соответственно, разрешая Вам повернуть игрока полностью вокруг на месте.

Минимум Y/Maximum Y: Снова, мы не используем Ось Y, таким образом этот Variables установлен в 0 здесь, но обычно это ограничило бы игрока, смотря вверх и вниз, поскольку это

62

делает в случае этого подлинника, который применен к Главному детскому объекту Камеры.

Объект 2: Графика

Из-за первой природы человека этого характера игрок никогда не будет видеть их собственное тело, как представлено капсулой. Это просто включено в этот prefab, чтобы помочь Вам, разработчику, легко определить объект в окне Scene, развиваясь и проверяя игру. Часто, разработчики выключат предоставление краткой петли, повреждая Петлю компонент Renderer в Инспекторе. Это должно гарантировать, что капсула остается скрытой, особенно в играх, где характер игрока рассматривается от другого угла во время сцен сокращения.

Выберите Графический детский объект в группе Иерархии, и смотрите на Инспектора, чтобы рассмотреть ее компоненты.

Мы возьмем это как читающийся, что у этого объекта есть компонент Transform (преобразовать) и что его положение (0,0,0), поскольку это сидит центрально с родительским объектом, Первым Диспетчером Человека. Поскольку единственная цель этого объекта состоит в том, чтобы представить нашего игрока визуально, у нее просто есть два ключевых компонента, которые делают ее видимой, Фильтр Петли и Петля Renderer. Но что делают эти два компонента?

[76]

Фильтр петли

Это называют Поверхностью Poly 2 в этом случае. Название компонента Фильтра Петли в любой трехмерной петле обычно - название объекта, который это представляет. Поэтому, когда Вы вводите внешне созданные модели, Вы заметите, что каждый компонент Фильтра Петли называют в

63

честь каждой части модели.

Фильтр Петли - просто компонент, содержащий петлю - трехмерная форма непосредственно. Это тогда работает с renderer, чтобы потянуть поверхность, основанную на петле.

Петля renderer

Петля Renderer должна присутствовать, чтобы потянуть поверхности на петлю трехмерного объекта. Это также отвечает за a), как петля отвечает на освещение и b) материалы, используемые на поверхности, чтобы показать цвет или структуры.

Упетли renderers есть следующие параметры:

Тени Броска: заставит Ли легкий бросок на этот объект тень быть брошенной на других поверхностях (только доступный в Unity Про версия).

Получите Тени: Оттянуты ли тени, брошенные другими объектами, на этот объект (только доступный в Unity Про версия).

Вэтом примере Графической капсулы не поставлен никакой флажок. Во-первых, это - то, потому что мы никогда не будем видеть капсулу, таким образом мы не должны будем получать тени. Во-вторых, игрок не думает, что их характеру сформировали тело как капсула, таким образом видя, что тень формы капсулы после них вокруг выглядела бы довольно странной.

Материалы: Эта область использует систему Размера/Элемента, замеченную в Менеджере Признака ранее в этой главе. Это позволяет Вам определять один или более материалов и регулировать параметры настройки для них непосредственно, не имея необходимость узнавать материал в использовании, и затем регулировать это отдельно в Проектной группе.

Поскольку наш Графический объект не требует/показывает никакого цвета или структуры, нет никакого материала к предварительному просмотру, но мы исследуем материальные параметры далее в следующих немногих главах.

Объект 3: Главная Камера

Главная Камера действует как Ваш viewport. В Первом prefab Диспетчера Человека Главная Камера помещена в уровень глаз

(наверху Графической капсулы) и управляется подлинниками, разрешая игроку переместить весь родительский объект и камеру независимо. Это позволяет игроку смотреть и также идти вокруг в то же самое время.

64

Характеры Игрока

Обычно, объекты игры камеры составлены из трех ключевых компонентов - Камера, GUILayer, и Слой Вспышки, в дополнение к обычному компоненту Transform (преобразовать). Камеры также идут со Звуковым Слушателем для того, чтобы получить звук, но это обычно удаляется, поскольку Unity требует, чтобы Вы только имели один за сцену.

В этом случае у нашей камеры также есть единственный компонент подлинника под названием Взгляд Мыши (Подлинник), который обращается с вращением наклона для камеры, основанной на входе от мыши. Понять камеру рассматривает лучше, позволить нам смотреть на то, как основные компоненты работают.

Камера

В то время как обычно сопровождающийся GUILayer и компонентами Слоя Вспышки, компонент Камеры - главный компонент, отвечающий за установление точки зрения. Чтобы понять, как компонент Камеры формирует нашу точку зрения, мы исследуем ее параметры.

Ясные Флаги: Обычно это будет установлено в его неплатеж, Skybox, чтобы позволить, что камера, чтобы отдать skybox материал в настоящее время относилась к сцене. Но чтобы позволить Вам, разработчику, управлять использованием многократных камер, чтобы потянуть мир игры, Ясный параметр Флагов существует, чтобы позволить Вам устанавливать определенные камеры, так же как отдавать определенные части мира игры. Однако, маловероятно, что Вы начнете использовать методы, такие как это, пока Вы не схватились с намного большим количеством основ Unity.

Обратный Цвет Основания: второстепенный цвет - цвет, предоставленный позади всех объектов игры, если нет никакого skybox материала, относился к сцене. Нажатие на цветной блок позволит Вам изменять этот цвет, используя цветного сборщика, или Вы можете использовать изображение пипетки чернил направо от цветного блока,

65

чтобы пробовать цвет от где-нибудь onscreen.

Нормализованный Порт Представления Rect: Этот параметр позволяет Вам определенно заявлять измерения - и положение для - представление камеры. Обычно, это собирается соответствовать всему экрану, и это также верно в примере Главной Камеры, приложенной к нашему игроку

[78]

Глава 3

X и координаты Y, устанавливаемые в 0 средств, которые наше представление камеры начинает в нижнем левом из экрана. Учитывая то, что ценности Ширины и Высоты установлены в 1, наш взгляд от этой камеры заполнит экран, потому что эти ценности находятся в экране Unity, координирует систему, которая колеблется от 0 до 1.

Вы будете видеть эту систему в других 2-ых элементах, что Вы работаете с в Unity, как графический пользовательский интерфейс

(GUI) элементы.

Преимущество того, чтобы быть способным установить размер и положение нашего viewport состоит в том, что мы можем желать использовать больше чем одну камеру в нашей игре. Например, в мчащейся игре Вы можете желать иметь камеру viewport в главном углу экрана, показывая представление позади автомобиля, позволить игроку разыскивать других водителей, приближающихся к нему.

• Около обрезают самолет скрепки Самолета / Далекий самолет скрепки: самолеты скрепки - эффективно расстояния, чтобы потянуть мир игры - близкий самолет, являющийся самым близким расстоянием, чтобы начать тянуть, и далекий самолет, являющийся самым далеким, или скорее где рисунок заканчивается.

Чтобы экономить на памяти в графическом буфере (часть памяти имела обыкновение хранить информацию на игре visuals в мире), самолеты скрепки часто используются, чтобы отключить пейзаж, который далек от игрока. В старших трехмерных играх эта техника была более очевидной, поскольку у компьютеров назад тогда было меньше RAM, чтобы написать, таким образом больше памяти должно было быть сохранено при использовании более близких далеких самолетов скрепки, чтобы сделать игру управляемой гладко.

Область представления: Этот параметр устанавливает ширину

66

viewport камеры в степенях. Этот угол установлен в 60 в нашем главном объекте камеры, поскольку это - заметная ценность, чтобы дать эффект человеческого глазного представления.

Орфографический и Орфографический размер: Toggling это урегулирование переключил бы Вашу камеру к орфографическому представлению, в противоположность стандартному трехмерному представлению, называемому перспективным представлением. Орфографические камеры чаще всего используются в играх, таких как изометрические игры стратегии в реальном времени, или 2-ые игры.

[79]

Глубина: урегулирование Глубины может быть использовано, используя многократные камеры. При наличии многих камер, которые переключены между использованием подлинников, параметр Глубины позволяет Вам определять первоочередной заказ, то есть, камера с более высокой ценностью глубины отдаст перед камерой с более низкой ценностью глубины. Глубина может также работать в соединении с Нормализованным Портом Представления Rect, приводящий в порядок, чтобы позволить Вам помещать представления камеры по главному представлению мира игры. В примере зеркала заднего обзора мчащейся игры камера заднего обзора должна была бы иметь более высокую ценность глубины чем главная камера, чтобы быть предоставленной перед главным передовым представлением мира игры.

Отбор Маски: Этот параметр работает со Слоями игры Unity, как обсуждено ранее, чтобы позволить Вам отдавать выборочно. Помещая определенные элементы Вашей игры на специфическом слое, Вы можете отсеять слой, они идут от Маски Отбора, опускаются меню, чтобы исключить их из того, чтобы быть предоставленным камерой. В настоящее время наша Главная Камера собирается отдать все, поскольку это - единственная камера в игре.

GUILayer и Слой Вспышки

Эти два компонента не имеют никаких параметров, но просто позволяют отдавать дополнительных визуальных элементов. GUILayer позволяет предоставление 2-ых элементов, таких как меню и в игре

настороженные показы (КОЖУРА). Слой Вспышки позволяет камере отдавать вспышки освещения, такие как тот, который мы добавили к нашему Направленному свету в Главе 2.

Взгляд Мыши (Подлинник)

Это - второй случай Взгляда Мыши (Подлинник) компонент, который мы видели пока - другой находящийся на родительском Первом

67

Диспетчере Человека. Однако, на сей раз его параметры Топоров установлены к Мышиному, и в результате это просто отвечает за взгляд вверх и вниз, вращая главный объект камеры вокруг его Оси X. Это, объединенное с подлинником Взгляда Мыши, который вращает родительский объект, дает нам эффект полностью свободного взгляда, используя мышь, потому что, вращая родителя возражают, что наша главная камера вращается левая и правая также.

Звуковой слушатель

Звуковой слушатель действует как наши уши и позволяет нам слышать любые звуковые источники, размещенные в игру. При наличии звукового слушателя на главной камере в первом человеке рассматривают игру, моно (единственный канал) звуки, которые происходят налево от игрока, услышат в левом ухе, разрешая Вам создать окружающую среду с погружением стерео реального мира.

Теперь, когда мы исследовали составные части Первого Диспетчера Человека, давайте бросим наш первый взгляд на то, как подлинник FPSWalker работает, чтобы схватиться с Unity JavaScript.

Основы Scripting

Scripting - один из наиболее ключевых элементов в становлении разработчиком игр. В то время как Unity является фантастическим при разрешении Вам создать игры с минимальным знанием исходного текста двигателя игры, Вы все еще должны будете понять, как написать кодекс, который командует двигателем Unity. Код, написанный для использования с Unity, догоняет ряд сборных classes, о которых Вы должны думать как библиотеки инструкций или поведений. При письме подлинников Вы создадите свои собственные classes, догоняя команды в существующем двигателе Unity.

В этой книге мы прежде всего сосредоточимся на том, чтобы писать подлинники в JavaScript Unity, поскольку это - самый легкий язык, чтобы начать с и является главным центром scripting справочной документации Unity. В то время как эта книга представит Вас основам scripting, чрезвычайно рекомендуется, чтобы Вы прочитали Unity Ссылка Scripting параллельно на это, и это доступно как часть Вашей установки Unity, и также онлайн в:

<http://unity3d.com/support/documentation/ScriptReference />

Проблемы столкнулись, в то время как scripting может часто решаться в отношении этого, и если это не работает, то Вы можете попросить помощь на форумах Unity или в интернет-Чате (IRC) канал для программного обеспечения. За дополнительной информацией, посещение:

<http://unity3d.com/support/community>

Сочиняя новый подлинник или используя существующий, подлинник станет активным только когда приложено к объекту игры в текущей

68

сцене. Прилагая подлинник к объекту игры, это становится компонентом того объекта, и поведение, написанное в подлиннике, может относиться к тому объекту. Однако, подлинники не ограничены запросу (термин scripting для формирования или управления), поведение на игре возражает, что они принадлежат, поскольку на другие объекты могут сослаться название или признак и могут также быть даны инструкции.

Чтобы получить лучшее понимание подлинников, мы собираемся исследовать, позволить нам смотреть на некоторое ядро scripting принципы.

Команды

Команды - инструкции, данные в подлиннике. Хотя команды могут быть свободными в подлиннике, Вы должны попробовать и гарантировать, что они содержатся в пределах Functions, чтобы дать Вам больше контроля, когда их вызывают. Все команды в JavaScript должны быть закончены (законченные) с точкой с запятой следующим образом:

speed = 5;

Variables

Variables - просто контейнеры для информации. Они объявлены (настроенным) использованием вара слова, сопровождаемого словом или нераздельной фразой. Variables можно назвать чем-нибудь, что Вы любите, при условии, что:

Название не находится в противоречии с существующим словом в коде двигателя Unity.

Это содержит только алфавитно-цифровые характеры и подчеркивает и не начинается с числа. Например, слово преобразовывают, уже существует, чтобы представить компонент Transform (преобразовать) объекта игры, таким образом называя Variables, или Functions с тем словом вызвал бы конфликт.

Variables могут содержать текст, числа, и ссылки на объекты, активы, или компоненты. Вот пример декларации Variables:

var speed = 9.0;

Наш Variables начинается с вара слова, сопровождаемого его именем, скоростью. Это тогда установлено (данный ценность), использование сингла равняется символу и закончено как любая другая команда с точкой с запятой.

Типы данных Variables

Объявляя variables, Вы должны также сообщить, какую информацию они будут хранить, определяя тип данных. Используя наш предыдущий пример, вот та же самая декларация Variables включая ее тип данных:

69

var speed : float = 9.0,-

Прежде, чем Variables установлен, мы используем двоеточие, чтобы определить тип данных. В этом примере ценность, в которую устанавливается Variables, является числом с десятичным разрядом, и мы заявляем, что у этого должно быть плавание типа данных (короткий для 'плавающей запятой' - значение числа с десятичным разрядом).

Определяя тип данных для любого Variables мы объявляем, мы в состоянии сделать наше scripting более эффективное, поскольку двигатель игры не должен решать на соответствующий тип для Variables, это читает. Вот несколько общих типов данных, с которыми Вы столкнетесь, начинаясь scripting с Unity:

последовательность: комбинация текста и чисел сохранена в кавычках

"как это"

int: Короткий для целого числа, означая целое число без десятичного разряда

плавание: плавающая запятая или десятичное число поместили числовое значение

булевый: истинная или ложная ценность, обычно используемая как выключатель

Vector3: Ряд ценностей XYZ

Используя variables

После объявления variables информация, которую они содержат, может тогда быть восстановлена или установлена, просто при использовании имени переменной. Например, если бы мы пытались установить Variables скорости, то тогда мы просто сказали бы:

speed = 2 0;

Поскольку мы уже установили (или объявили), вар Variables только используется в декларации, как тип данных.

Мы можем также подвергнуть сомнению или использовать ценность Variables в частях нашего подлинника. Например, если бы мы желали сохранить ценность, которая была половиной текущего Variables скорости, то тогда мы могли установить новый Variables, как показано в следующем примере:

var speed : float = 9.0; var halfSpeed : float; halfSpeed = speed/2;

Кроме того, заметьте, что, где Variables полускорости объявлен, он

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]