Unity – создаем игру с нуля. Часть 2.
Содержание
В прошлой статье Создаем игру на Unity. Разбираемся с нуля мы начали знакомство с игровым движком Unity. Разобрались с основными компонентами, а так же не написали ни одной строки кода. В этой части продолжим наше знакомство.
SkyBox. А мне бы в небо.
Взглянув на горизонт, выше вы увидите нежно-голубое небо, или SkyBox, как его именуют в Unity. Выглядит оно обычно, как мы и привыкли в повседневной жизни. Но бывают случаи, когда этого нам не нужно. Когда в нашей игре происходит Армагеддон, весь мир рушится к черту и небо залито алым цветом с дымкой смога от взрывов. Данный цвет нам вряд ли подойдет для нагнетания такой атмосферы.
Для этого давайте поищем SkyBox в Unity Assets Store. Конкретно вышеописанного нужного мне я не нашел в бесплатных, потому будем использовать те что есть. Я взял вот этот SkyBox. Добавьте себе и попробуем его установить.
Добавление SkyBox
Перейдите в меню Window > Rendering > Lighting Settings и увидите окно для редактирования скайбокса и именно оно поможет нам добавить SkyBox.

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

Легким движением руки наша картина приобрела немного драматизма.
Materials. Создание и использование материалов.
Поместите новый объект на сцену. Например, куб. И как мы видим – перед нами обычный белый куб. В текущем освещении он не совсем бел, но все же. Можете сменить SkyBox на стандартный, что бы увидеть всю обычность белого куба. Все это происходит, потому что стандартный материал применен на наш куб. Сами посмотрите.

Создание материала
Давайте создадим свой материал. Для этого нажмите правой кнопки мыши в Assets и выберите Create > Material что бы создать новый материал. Можете переименовать его и назвать ка-нибудь по-оригинальному. Например, MyMaterial.

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

Textures. Добавление текстур.
Текстура – это изображение, которое мы можем добавить на объект. Текстуры помогают нам добавить реалистичности и естественности в игровом мире, так как однотонностях окрашеные объекты кажутся более плоскими.
Как и другие элементы, текстуры можно найти на Assets Unity Store. Я для примера решил взять эту. Я добавил новый 3D объект на сцену. Он называется Plane. Теперь перенесите на него загруженную текстуру. У меня вышло так

Конечно никто не запретит вам поиграться со свойствами и посмотреть как это будет влиять на наши объекты. Вы так же можете создать материал, применить к нему текстуру – любое понравившееся вам изображение и добавить это все чудо на ваш объект.
Пишем первый код на Unity.
Пришло время для самого интересного! Кода! Давайте сразу и приступим и напишем наш первый код. Правой кнопкой мыши на Assets создайте новый C# скрипт. Мы его привяжем к нашему кубу. Потому я его назвал HeroScript. Можете назвать на свое усмотрение, например, CubeScript.

Теперь двойным кликом по скрипту мы откроем его в редакторе. Visual Studio скорее всего был установлен вместе с Unity. Если же нет – установите его вручную. Или зайдите в UnityHub > Installs и нажмите Add modules. Это позволит вам выбрать Visual Studio для установки. Если возникнут вопросы – решим их вместе в комментариях. Так же, для начала, вы можете открыть файл в любом другом редакторе.
Давайте теперь посмотрим, что же находится в нашем скрипте
using System.Collections; using System.Collections.Generic; using UnityEngine; public class HeroScript : MonoBehaviour { // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } }
Здесь мы видим класс HeroScript который наследует другой класс MonoBehaviour. Что же это за класс такой MonoBehaviour? Для того, что бы детально с этим разобраться – лучше открыть документацию в которой будет описан он во всех деталях без цензуры. В двух словах, это базовый класс, от него наследуется все скрипты.
Разберемся с двумя методами, которые присутствуют в этом примере. Первый – это метод Start – он запускается в момент когда скрипт только добавлен и не было еще вызвано ни одного метода update(). Update – это метод, в котором, собственно, происходит логика обновления каждого кадра игры.
Давайте проверим как же это все работает. Добавим в эти пару методов следующий код
using System.Collections; using System.Collections.Generic; using UnityEngine; public class HeroScript : MonoBehaviour { // Start is called before the first frame update void Start() { Debug.Log("Method Start has been just called now"); } // Update is called once per frame void Update() { Debug.Log("Updated"); } }
Здесь у класса Debug мы вызываем метод Log, который выведет в консоль предоставленную строку. Аналогично, в документации вы можете глянуть что этот класс из себя представляет и какие методы у него существуют.
Давайте запустим его. Нажмите кнопку запуска в Unity. Что произошло? Ничего…

Правильно, так все и должно быть. Все потому, что мы создали данный класс, но он у нас нигде не запускается.
Есть несколько способов добавить его в нашу игру. Слева выберите в контекстном меню создать новый пустой объект Create Empty. Назовите его читабельно, например, MainScript. Далее перетяните наш HeroScript на MainScript. Теперь смело запускайте игру.

В консоли вы должны увидеть результат работы нашего класса. Здесь первым отрабатывает наш метод Start, а далее – Update

На этом текущую статью окончим. Далее будем писать больше кода, обещаю.
Следующая статья: Создание игр с нуля на Unity. Часть 3.