Уроки Unity3d - Солнце, море и песок – создание острова.

Шаг 1 — Настройка ландшафта.

Теперь, когда мы рассмотрели все средства необходимые нам для создания ландшафта, приступим – создадим наш ландшафт, идем в главное меню и выбираем там Terrain -> Create Terrain. Убедитесь, что ваш ландшафт по-прежнему выбран в Hierarchy, и выберите в главном меню Terrain -> Set Resolution.

Поскольку мы не хотим делать слишком большой остров для нашего первого проекта, установите ширину и длину ландшафта (Terrain Width и Terrain Length) равными 1000. После ввода значений, нажмите клавишу Enter, так вы подтвердите их ввод, прежде чем нажать кнопку Set Resolution.

Далее, необходимо увеличить высоту нашего ландшафта, а не оставлять на нулевом уровне, который установлен по умолчанию для новых ландшафтов, т.к. нулевым уровнем у нас будет дно океана. Выберете в главном меню Terrain -> Flatten Heightmap. В поле Height (высота) введите значение равное 30, и нажмите клавишу Enter, что подтвердит ввод, затем нажмите кнопку Flatten.

Вы можете не заметить изменений в окне сцены (Scene), так как мы, всего лишь, подняли наш ландшафт немного вверх. Но данная операция экономит много времени – теперь нам достаточно, используя инструмент Raise Height (с зажатым Shift), опустить края ландшафта, оставив в центре возвышенность, которая и будет нашим островом. Это более эффективно, чем начинать с нулевой высоты, ‘рисуя’ на ландшафте целый остров.

Шаг 2 — Контуры острова.

В Инспекторе свойств (Inspector) в компоненте Terrain (Script) (объект Terrain должен быть активным), выберете первый из семи инструментов - Raise Height.

Выберете первую кисть (brush) в палитре, и установите значения Brush Size и Opacity, равными 75 и 50 соответственно (прим. пер.: в книге значение Opacity указанно равным 0.5, но Unity не понимает таких значений, видно у автора диапазон этого значения от 0 до 1, поэтому я изменил на 50).

Измените вид в окне сцены (Scene), на вид сверху-вниз, для этого нажмите на ось Y (зеленая 'ручка') инструмента Scene Gizmo (gizmo – штуковина, в правом верхнем углу окна сцены).
Фото

Используя клавишу Shift , для уменьшения высоты, ‘нарисуйте‘ контуры острова, создав береговую линию, которая постепенно уменьшается до нуля – вы заметите, что достигли нуля, т.к. ландшафт будет выравниваться на этой минимальной высоте.

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

Теперь, переключитесь обратно на 3D вид в окне сцены, нажав на куб в центре Scene Gizmo, и полюбуйтесь на творение своих рук. То, что получилось у меня, можно увидеть на рисунке ниже:
Фото

Сейчас, самостоятельно разнообразьте рельеф вашего острова с помощью инструмента Raise Height, поэкспериментируйте с кистями и настройками, используйте Shift, что бы создать озеро или овраг. Но оставьте нетронутый участок на вашем острове, где-нибудь с краю, там мы создадим вулкан!

Шаг 3 — Вулкан!

Сейчас мы создадим вулкан! Для этого используем следующую комбинацию инструментов Paint Height, Raise Height и Smooth Height. Для начала выберем Paint Height.

Выберете первую кисть (brush) в палитре, и установите значения Brush Size и Opacity, равными 75 и 50 соответственно, а параметру Height присвойте значение 200 (прим. пер.: снова, в книге значение Opacity указанно равным 0.5, изменил на 50). Перейдите на вид сверху-вниз, используя Scene Gizmo, и ‘нарисуйте’ плато там, где вы выделили место вулкану. Помните, что этот инструмент прекратит изменение ландшафта, как только тот достигает указанной высоты - 200.

На данный момент ваш остров должен выглядеть приблизительно так (3D вид):
Фото

Наше плато может выглядеть немного неуклюже, это не страшно – позже ми подправим его, используя сглаживание, но сначала мы должны сделать жерло вулкана. Для этого продолжим использовать Paint Height, только изменим его настройки, установим высоту (Height) в 20, а размер кисти (Brush Size) равным 30.

Теперь, удерживая левую кнопку мыши, начинайте ‘рисовать’ от центра плато к его краям, во всех направлениях, пока не сформируется жерло, оставив узкий хребет по краям, должно получиться приблизительно так:
Фото

У нас по-прежнему очень резкие края, а при переключении на вид в перспективе (perspective view) мы можем заметить, что наш вулкан выглядит не совсем красиво. Вот где нам понадобиться инструмент Smooth Height. Выберете Smooth Height и установите его параметры Brush Size и Opacity равными 30 и 100 (прим. пер.: в книге значение Opacity указанно равным 1, изменил на 100) соответственно. Используя этот инструмент, рисуйте по краю хребта с помощью мыши, смягчая его высоту, пока не будут созданы округлые мягкие края, как показано на следующем рисунке:
Фото

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

Шаг 4 — Добавляем текстуры.

Добавляя текстуры на ваш ландшафт, крайне важно помнить, что первая текстура, которую вы добавляете, покроет его полностью. Имея это в виду, вы должны обеспечить, чтобы первая текстура, добавляемая в палитру текстур (texture palette), была текстурой, которая представляет поверхность большей части вашего ландшафта.

Начиная создавать нашу игру, мы включили в наш проект Standard Assets Package (пакет стандартных ресурсов), в котором находятся различные ресурсы, пригодные для начала создания игр. Таким образом, вы найдете папку Standard Assets в окне вашего проекта (Project). Откройте эту папку, нажав на серую стрелку слева, перейдите к папке Terrain Textures и откройте ее.
Фото

Эти четыре текстуры мы будем использовать для окраски ландшафта нашего острова, поэтому давайте начнем добавлять их в нашу палитру. Убедитесь, что объект ландшафта (Terrain game object) все еще выделен, а затем выберите инструмент Paint Texture из компонента Terrain (Script) в инспекторе свойств (Inspector).

Процедурное рисование.

Для того, что бы применить эти четыре текстуры, начнем с нажатия на кнопку Edit Textures и выбора Add Textures из выпадающего меню. Откроется диалоговое окно Add Textures, в корм вы сможете выбрать любую текстуру из вашего проекта. Нажмите на стрелочку вниз, справа от параметра Splat, откроется список всех текстур, выберете там Grass (Hill).
Фото

Установите параметры Tile Size X/Y равными 15, т.к. эта текстура покроет всю карту, эти малые значения дадут нам более детальный вид травы. Нажмите Add. Эта текстура травы покроет весь наш ландшафт, т.к. мы ее добавили первой. Следующие добавление текстуры придется наносить на ландшафт вручную.

Повторите описанные выше шаги для добавления оставшихся трех текстур - Grass&Rock, Cliff (Layered Rock), и GoodDirt – параметры Tile Size оставьте такими же, кроме текстуры Cliff (Layered Rock), для нее Tile Size X/Y будут равны 70.
Фото

Песчаная область.

Сейчас у вас в палитре должно находиться четыре текстуры, Выберете текстуру GoodDirt (синее подчеркивание – признак того, что текстура выделена). Установите параметры рисования следующим образом: Brush Size = 60, Opacity = 50 и Target Strength = 1. Теперь вы можете окрасить побережье острова, используя или вид с верху, или вид в перспективе.

Если вы совершили ошибку при окраске ландшафта, выберете в меню Edit -> Undo (Ctrl+Z), что позволит вам вернуться на шаг назад, либо выберете в палитре текстуру Grass (Hill) и закрасьте неверный участок.

По окончании, вы должны иметь что-то вроде этого:
Фото

Трава и Камень.

Далее выберем в палитре добавленную текстуру Grass&Rock. Установим Brush Size равным 25, Opacity в 30, а Target Strength присвоим значение 0.5. Окрасьте этой текстурой возвышенности и подножье вулкана. Должно выйти вот так:
Фото

Вулканический камень!

Придадим нашему вулкану более реалистичный вид, окрасив его добавленной ранее текстурой Cliff (Layered Rock). Настройки рисования будут следующими: Brush Size = 25, Opacity = 100 и Target Strength = 1.

Жерло вулкана и его вершину красьте с этими параметрами, но, приближаясь к его подножью, постепенно уменьшайте значения Opacity и Brush Size, для более точного сопряжения с текстурой земли.

Когда вы закончите, ваш вулкан должен выглядеть следующим образом:
Фото

Шаг 5 — Время для деревьев.

После того как мы покрыли остров текстурами, пора его облагораживать – неплохо было бы посадить на нем деревья. В пакете стандартных ресурсов (Standard Assets package), есть все ресурсы, что бы научить нас работать с редактором ландшафта (terrain editor), тут есть и дерево – это пальма.

Убедитесь, что объект ландшафта (Terrain game object) все еще выделен, а затем выберите инструмент Place Trees из компонента Terrain (Script) в инспекторе свойств (Inspector). Нажмите на кнопку Edit Trees и из выпадающего меню выберете Add Tree.

Откроется диалоговое окно Add Tree. Как и некоторые другие инструменты ландшафта, этот Add-диалог позволяет выбрать любой объект соответствующего типа из нашей папки ресурсов.

Вы не ограничены деревьями доступных в Standard Assets, вы можете создать свои деревья и импортировать их в папку Assets своего проекта, с тем, что бы использовать их в дальнейшем. Тем не менее, мы будим использовать пальму из Standard Assets. Нажмите на стрелочку вниз, справа от параметра Tree и выберете там ресурс Palm.

Bend Factor позволяет нашим деревьям качаться на ветру. Этот эффект влияет на производительность (дорог в вычислительном плане), поэтому мы будем использовать небольшое число. Введите значение 2 и нажмите Enter. Если в дальнейшем, вы заметите что именно этот эффект является причиной падения производительности вашей игры, вы можете в любое время установить этот параметр в ноль. Когда все будет готово – нажмите кнопку Add.

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

Установите Brush Size равным 15 и Tree Density в 10. Установите Color Variation в 0.4(разнообразит оттенки) и Tree Height / Width равными 150 с разбросом в размере (Variation) 30.

С помощью левой клавиши мыши расставьте пальмы вдоль береговой линии. Можно посадить пару пальм и в центре острова.

Помните, что если вы поместили пальму там, где ей не место, Place Trees использует клавишу Shift, что бы стереть деревья с ландшафта, в сочетании с клавишей Ctrl стирает только выбранные в палитре деревья.

Шаг 6 — Расти трава.

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

Убедитесь, что объект ландшафта (Terrain game object) все еще выделен, а затем выберите инструмент Paint Details из компонента Terrain (Script) в инспекторе свойств (Inspector). Нажмите на кнопку Edit Details и из выпадающего меню выберете Add Grass Texture.

Мы будем использовать текстуру травы из Standard Assets package, нажмите на стрелочку вниз, справа от параметра Detail Texture и выберете там текстуру с названием Grass (не Grass (Hill)).

После выбора текстуры Grass, оставим значения Min/Max Width и Min/Max Height (мин/макс ширина и высота травы) по умолчанию, и убедимся, что стоит флажок напротив свойства в Billboard (внизу окна). Поскольку наша трава это 2D текстура, мы можем использовать billboarding, прием в разработке игр, при котором текстура травы вращается так, чтобы быть лицом к камере во время игры, так трава будет казаться менее двумерной.

Используя диалог выбора цвета, установите Healthy Color (цвет живой травы) и Dry Color (цвет сухой травы), в соответствие с цветом текстуры травы, т.к. яркая трава на поверхности нашей текстуры будет смотреться крайне не уместно.
Фото

Прим. Пер.: опишу оставшиеся свойства, описание взято от сюда - http://docs.unity3d.ru/Components/terrain-Grass.html
• Noise Spread: Величина генерируемого шума для групп травы. Маленькое число означает меньше шума;
• Grayscale Lighting: Если включено, трава не будет слегка окрашиваться в цвета источников света размещенных на ландшафте;
• Lightmap Factor: Какое количество трава будет под влиянием Lightmap;

Для посадки травы мы также пользуемся мышью, как и в других инструментах.

Установите Brush Size, Opacity, Target Strength в 100, 0.05 и 0.6 соответственно. Так мы посадим траву на большой площади, но с малой плотностью, а выбор пунктирной кисти, см. рисунок ниже, сделает области травы не равномерными.
Фото

Используя инструмент Hand (Рука) с зажатой клавишей Ctrl, приблизьте камеру к поверхности ландшафта. Раз кликнув мышью, вы нарисуете область травы. Двигаясь вдоль поверхности острова, нарисуйте еще несколько областей травы – делайте это экономно для увеличения производительности - вы всегда можете вернуться и добавить больше травы, если игра будет хорошо работать.

Крайне важно приблизиться к поверхности острова, т.к. для экономии памяти Unity Editor скрывает детали(details) в окне сцены (Scene view) на расстоянии – так что часто будет казаться, что, когда вы изменили масштаб изображения, ваша трава и другие детали пропали - не волнуйтесь это не так.

Шаг 7 — Да будет свет!

Теперь, когда ландшафт острова готов, пора добавить освещения на нашу сцену. Это наше первое знакомство со светом в Unity, поэтому для начала давайте ознакомимся с типами источников света:
• Directional light: Используется в качестве основного источника света, чаще всего, как солнечный свет, Directional light (направленный свет) не исходит из одной точки, он светит в одном направлении;
• Point light: Свет этого источника исходит из одной точки и распространяется во всех направлениях, используется в качестве внутреннего освещения, огня, светящихся объектов и т.п.;
• Spot light: Светит в одном направлении и имеет радиус освещения, т.е. работает, как и указанно в его названии, в качестве прожектора.

“Пусть всегда будет солнце”.

Для имитации солнечного света мы будем использовать Directional Light. Идем в главное меню Unity, далее GameObject -> Create Other -> Directional Light. Так мы добавим свет на сцену и в окно иерархии объектов (Hierarchy). Т.к. это не точечный источник света, сам источник игрок не в состоянии заметить, а только отбрасываемый им свет, поэтому положение Directional light не очень важно. Однако, в этом уроке, мы собираемся использовать Directional light, для имитации солнца, применяя Flare (блеск/сияние) к свету.

Чтобы имитировать солнце, мы поместим свет высоко над островом и обеспечим его правильное направление.

Установим позицию(Position – компонент Transform в Inspector) источника света равной (0, 500, -200) и подтвердим ввод каждого значения нажатием клавиши Enter. Введите в поле Rotation.X значение 8 , так мы повернем наш источник света вдоль оси Х и осветим наш остов.

Наконец мы должны сделать наше ‘солнце’ видимым. Для этого выберем flare (блеск/сияние) света, нажав на стрелочку вниз, справа от параметра Flare компонента Light – сейчас он установлен в положение None, выберете Sun.
Фото

Прим. пер.: опишу все свойства компонента Light:
• Type: Тип источника света - Directional light, Point light или Spot light;
• Color: Цвет излучаемого света;
• Attenuate: Яркость света уменьшается с увеличивающимся расстоянием? Можно отключить, если вы хотите реализовать некоторые эффекты. Для Directional light это свойство игнорируется.
• Intensity: Яркость света. По умолчанию для Spot/Point lights= 1, для Directional light – 0.5;
• Range: Как далеко излучается свет от центра объекта (свойство для Spot/Point lights);
• Spot Angle: Если источник света Spot, это определяет угол конуса света в градусах;
• Shadows (только для Pro версии): Опции теней, которые будут созданы от этого источника света;
• Type: Hard или Soft тени. Soft тени более дороги;
• Resolution: Уровень детализации теней;
• Strength: ‘Темнота’ теней. Значения между 0 и 1;
• Projection: Проекционные типы теней от Directional light;
• Constant Bias: Смещение в мировых единицах, используемое для теней. Этот параметр, в настоящее время, игнорируется тенями от Point Light;
• Object Size Bias: Смещения shadow caster в зависимости от его размера. Значение по умолчанию составляет 1% от размера caster-а. Этот параметр, в настоящее время, игнорируется тенями от Point Light;
• Cookie: Вы можете назначить текстуру на источник света. Альфа канал (alpha channel) этой текстуры используется как маска, которая определяет, насколько ярок свет в различных местах. Если это Spot или Directional источники света, это должно быть 2D текстура, если Point light, то Cubemap;
• Draw Halo: Если включено, будет отрисовываются сферический ореол света, с радиусом Range;
• Flare: Дополнительная ссылка на Flare (блеск/сияние), который будет отрендерин в позиции источника света;
• Render Mode: Режим визуализации (rendered) света – Auto, Force Pixel или Force Vertex. Для более подробного описания см. Performance considerations;
• Culling Mask: Используйте, для выборочного исключения групп объектов из под воздействия источника света; см. Layers(Слои);

Шаг 8 — Что это за звук?

Очень часто при разработке игры забывают уделить звуку достойное внимание. Для полного погружения в игру, игрок не только должен видеть красивое окружение, но и слышать его.

Звук в Unity представлен двумя компонентами - Audio Source (источник звука) и Audio Listener (слушатель). Думайте о Source, как о динамике в мире вашей игры, а о Listener, как о микрофоне или ухе игрока. В Unity по умолчанию, камера (camera game objects) является слушателем (компонентом Audio Listener). С учетом того, что в вашей игре всегда есть камера, вам придется создавать только источники звука (sound sources). Стоит также отметить, что компонент Audio Listener не имеет свойств для настройки - он просто работает – и Unity сообщит вам об ошибке, если вы случайно удалите слушателя из сцены.

Стерео vs Моно.

Unity управляет поведением звука, используя Стерео (два канала), как звук с постоянным радиусом слышимости, и Моно(один канал), как звук с переменным радиусом слышимости, зависящим от близости его источника к слушателю в 3D мире.

Например, в следующих целях:
• Музыка в игре. Лучше использовать Стерео, т.к. звук должен оставаться
неизменным, в независимости от положения слушателя-игрока.
• Звуковые эффекты. Лучше использовать Моно – позволит игроку
ориентироваться на звук по мере его затухания/появления, придаст реалистичность.

Форматы.

Unity поддерживает самые распространенные аудио форматы - WAV,MP3, AIFF и OGG.
При встречи со сжатым форматом, таким как MP3, Unity преобразовывает ваш звуковой файл в файл формат Ogg Vorbis, но при этом оставляет несжатые звуки, такими как они есть.

Звуковые файлы импортируются в Unity, так же как и все остальные ресурсы.

Холмы оживают!

Для придания реалистичности нашему острову, мы добавим источник звука (sound source), проигрывающий звуки окружения, используем для этого стерео звук. Для начала убедитесь, что объект ландшафта (Terrain game object) выделен в Hierarchy, если нет, выберете его, идите в главное меню Unity, далее Component -> Audio > Audio Source. Вы добавили компонент Audio Source к нашему ландшафту. Так как у стерео звука постоянной радиус слышимости, и его положение не имеет значения, мы могли бы прикрепить источник звука(sound source) к любому объекту на этой сцене, однако, в данном случае, использование ландшафта (terrain game object) является наиболее логичным.

В инспекторе свойств ландшафта (Inspector of the terrain), вы увидите компонент Audio Source, которому вы можете назначить аудио файл для воспроизведения или оставить пустым, если вы планируете воспроизводить звуки по средствам скрипов.

Импорт вашего первого пакета.

На этом этапе вам необходимо скачать первый из нескольких пакетов ресурсов с сайта Packt publishing (издатель книги) - www.packtpub.com/files/8181_Code.zip. Найдите файл с именем Sound1.unitypackage из списка файлов, связанных с этой книгой, а затем вернуться в Unity, идите в главное меню, далее Assets -> Import Package.

Откроется диалоговое окно выбора Import package…, в котором вам будет предложено выбрать файл пакета для импорта, после выбора нужного пакета и нажатия кнопки ‘Открыть’, Unity предоставит список ресурсов содержащихся в пакете, по умолчанию отмечены все ресурсы, что подразумевает импорт всего содержимого пакета, но есть возможность импортировать только часть ресурсов, что очень полезно.

В пакете Sound1 находится папка Sound, в которой находиться один файл формата MP3, под именем hillside.mp3.

Нажмите кнопку Import, для подтверждения добавления этих файлов в проект, и после недолгой индикации хода преобразования, вы должны увидеть их в окне своего проекта (project) – вам надо открыть добавленную папку Sound (серая стрелка слева), что бы увидеть аудио файл hillside. Аудио файлы представлены в окне проекта (Project) значком динамика, как показано на следующем рисунке:
Фото

Файл hillside теперь готов к применению в компоненте Audio Source ландшафта.
Нажмите на стрелочку вниз, справа от параметра Audio Clip компонента Audio Source объекта Terrain. Появиться список всех доступных аудио файлов вашем проекте, выберете наш единственный файл hillside.

Дальнейшие настройки аудио.

Компонент Audio Source имеет различные настройки для управления, как звучанием аудио клипа (Audio Clip), так и его воспроизведением. Для нашего звука, просто убедитесь, что установлены флажки для Play On Awake и Loop.

Так как наш звук в режиме стерео, он не зависит от расстояния, параметры Min / Max
Volume и Rolloff Factor не применяются. Однако они важны при использовании моно звука.
Фото

Прим. пер.: опишу все свойства компонента Audio Source:
• Audio Clip: Ссылка на воспроизводимый аудио клип;
• Play On Awake: Если включено — звук начинает проигрываться при старте
сцены. Выключено — нужно активировать скриптом через Play();
• Volume: Громкость звука, находящегося на расстоянии 1 единцы (1 метра) от
Audio Listener;
• Pitch: Скорость воспроизведения. Значение «1» — нормальная скорость;
• Min Volume: Минимальная громкость звука;
• Max Volume: Максимальная громкость звука;
• Rolloff Factor: Как быстро затухает звук с увеличением расстояния;
• Loop: Если включено, то Audio Clip будет воспроизведён снова после окончания.

Шаг 9 — Посмотрите на небо!

При создании 3D окружения, небо, горизонт и удаленные объекты представлены skybox-ом. SkyBox - это cubemap – серия из 6 текстур помещенных внутри куба и имитирующих небо и горизонт. Эта cubemap расположена вокруг 3D мира, и как до настоящего горизонта, так и до skybox-а игрок никогда не может дойти. В инспекторе свойств (Inspector) отобразятся настройки визуализации (Render Settings) сцены.

Применим skybox к нашей сцене , идем в главное меню Unity, далее Edit -> Render Settings. Нажмите на стрелочку вниз, справа от параметра Skybox Material, из появившегося списка выберете Sunset (Закат). Так мы добавим skybox, но крайне важно понять, что любой skybox, который вы добавляете, по умолчанию будет виден только в окне Game.

Как и многие skybox-ы из пакета Standard Assets, Sunset имеет нарисованное солнце.
Проблема в том, что наш источник света - directional light - визуально представлен эффектом flare (блеск/сияние), поэтому нам нужно переместить источник света в соответствии со SkyBox-ом. Но для начала, давайте добавим First Person Controller, что бы видеть проблему, так сказать, от первого лица.

Шаг 10 — Вода, кругом вода.

Так как мы создаем остров, вполне логично, что б он был окружен водой. Вода в Unity создается путем применения анимированного материала (animated material) к поверхности (surface). Хотя вполне возможно создать дополнительные динамические эффекты для воды с помощью частиц (particles), лучший способ добавить большое водное пространство состоит в том, чтобы использовать один из водных материалов (water materials), предоставляемых Unity.

Standard Assets package предлагает в наше распоряжение две готовых поверхности с водным материалом. Готовые и сохраненные как префабы (prefabs), эти объекты находятся в окне нашего проекта (Project). Просто откройте папу Standard Assets -> Water.

Перетащите префаб Daylight Simple Water на нашу сцену, переместите его в позицию (500, 4, 500), заполнив соответствующие поля X, Y и Z поля свойств Position компонента Transform в Inspector-е. Для того, что бы вода окружала наш остров необходимо увеличить масштаб префаба воды, увеличьте значения X и Z свойства Scale до 1600.

У вас должно получиться следующее:
Фото

Шаг 11 — Прогулки по острову.

В окне нашего проекта (Project), в папке Standard Assets находиться папка Prefabs. Тут вы найдете один префаб (prefab) – готовый объект First Person Controller (управление от первого лица). Его можно разместить на нашей сцене, что позволит вам ходить по острову с помощью клавиатуры и мыши.

Перетащите этот префаб из окна проекта (Project) в окно сцены (Scene).

Переместите First Person Controller в позицию (500, 35, 500). Это место находиться прямо в центре карты, т.к. мы создали ландшафт размером 1000х1000 (ХхZ). Если в центре карты вы создали холм, отрегулируйте значение Y так, что бы персонаж появлялся над поверхностью ландшафта.

Для фокусировки камеры на объекте выборном его в Hierarchy, наведите курсор на окно сцены и нажмите клавишу F, окно сцены будет центрировано и масштабировано по объекту.

Теперь нажав кнопку Play для теста игры, вы будите иметь возможность передвигаться по острову.

По умолчанию управление персонажем такое:
• Up/W: вперед;
• Down/S: назад;
• Left/A: влево;
• Right/D: вправо;
• Mouse: Смотрите вокруг/поворот игрока при ходьбе.

Подымитесь на холм и осмотритесь, пока не увидите сияние (flare) солнца. Тогда повернитесь вправо и вы увидите, что skybox так же имеет свое солнце. Наша задача совместить Directional Light с солнцем на skybox-е.

Остановите тест игры, повторено нажав на кнопку Play. Крайне важно остановить игры, для продолжения работы. В режиме воспроизведения (play mode), изменения, вносимые в любую часть вашей игровой сцены, временные – это задумано, как способ тестирования, при остановке игры, все внесенные изменения будут отменены.

Шаг 12 — Выравнивание солнца и последняя хитрость.

Выберете в окне Hierarchy объект the Directional Light, переместите его, используя компонент в инспекторе свойств, в точку (-500, 500, 500). Поверните (Rotate) объект на 120 градусов вдоль оси Y. Так мы поместим источник света в соответствии с солнцем на skybox-е.

Наконец, поскольку мы добавили объект First Person Controller, мы больше не нуждаемся в объекте, с которым наша сцена шла по умолчанию - Main Camera. Unity напоминает нам об этом, показывая сообщение внизу экрана:
Фото

Что бы исправить это мы просто удалим не нужный нам объект Main Camera. Для этого выделим его в окне Hierarchy и используем комбинацию клавиш Shift+Delete для удаления, так же можно удалить из главного меню Edit -> Delete.

Теперь, когда этого объекта нет, ваш ландшафт острова завершен. Сохраним сцену, что бы не потерять результат вашей работы – выберете в главном меню File -> Save Scene и введите имя сцены Island Level - Unity предположит, что вы хотите сохранить сцену в папке Assets вашего проекта, и выберете эту папку автоматически, потому что все ресурсы должны быть в этой папке. Что бы хранить ресурсы более организованно, вы можете создать в папке Assets папку Levels и сохранить сцену туда.

Поздравления, ваш остров готов к исследованию, нажмите кнопку Play и вперед! Только не забудьте снова нажимать Play, когда вы закончите.