Поведение GameObjectsФундаментальный объект в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки, и более. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь контролируется КомпонентыФункциональная часть GameObject. GameObject может содержать любое количество компонентов. В Unity есть много встроенных компонентов, и вы можете создавать свои собственные, написав сценарии, которые наследуются от MonoBehaviour. Подробнее
См. в Словарь, которые к ним прикреплены. Хотя встроенные компоненты Unity могут быть очень универсальными, вскоре вы обнаружите, что вам нужно выйти за рамки того, что они могут предоставить, чтобы реализовать свои собственные функции игрового процесса. Unity позволяет создавать собственные компоненты с помощью скриптов. Они позволяют запускать игровые события, изменять свойства компонентов с течением времени и реагировать на действия пользователя любым удобным для вас способом.
Unity изначально поддерживает язык программирования C#. C# (произносится как C-sharp) – это язык, являющийся отраслевым стандартом, аналогичный Java или C++.
Кроме того, с Unity можно использовать многие другие языки .NET, если они могут скомпилировать совместимую библиотеку DLL. Дополнительную информацию см. здесь.
Изучение искусства программирования и использование этих конкретных языков выходит за рамки этого введения. Однако существует множество книг, учебных пособий и других ресурсов для обучения программированию в Unity. Дополнительную информацию см. в разделе обучения нашего веб-сайта.
Создание сценариев
В отличие от большинства других ресурсов, сценарии обычно создаются непосредственно в Unity. Вы можете создать новый сценарий в меню «Создать» в левом верхнем углу панели «Проект» или выбрав Ресурсы > Создать > Сценарий C# в главном меню.
Новый сценарий будет создан в той папке, которую вы выбрали на панели «Проект». Будет выбрано имя нового файла сценария, и вам будет предложено ввести новое имя.

Рекомендуется ввести имя нового скрипта на этом этапе, а не редактировать его позже. Введенное имя будет использоваться для создания начального текста внутри файла, как описано ниже.
Структура файла скрипта
Если дважды щелкнуть ресурс сценария в Unity, он откроется в текстовом редакторе. По умолчанию Unity будет использовать Visual Studio, но вы можете выбрать любой редактор на панели Внешние инструменты в настройках Unity (перейдите в раздел Unity > Настройки).
Первоначальное содержимое файла будет выглядеть примерно так:
using UnityEngine;
using System.Collections;
public class MainPlayer : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
Скрипт устанавливает связь с внутренней работой Unity, реализуя класс, производный от встроенного класса с именем MonoBehaviour. Вы можете думать о классе как о своего рода схеме для создания нового типа Компонента, который может быть присоединен к GameObjects. Каждый раз, когда вы прикрепляете компонент скрипта к GameObject, он создает новый экземпляр объекта, определенного планом. Имя класса берется из имени, которое вы указали при создании файла. Имя класса и имя файла должны совпадать, чтобы можно было присоединить компонент скрипта к GameObject.
Однако главное, на что следует обратить внимание, это две функции, определенные внутри класса. Функция Update — это место для размещения кода, который будет обрабатывать обновление кадра для GameObject. Это может включать в себя движение, инициирование действий и реакцию на ввод пользователя, в основном все, что необходимо обрабатывать с течением времени во время игры. Чтобы функция обновления могла выполнять свою работу, часто полезно иметь возможность устанавливать переменные, читать предпочтения и устанавливать соединения с другими игровыми объектами до того, как произойдет какое-либо игровое действие. Функция Start будет вызываться Unity перед началом игрового процесса (т. е. перед первым вызовом функции Update) и является идеальным местом для любой инициализации.
Примечание для опытных программистов: вас может удивить, что инициализация объекта не выполняется с помощью функции-конструктора. Это связано с тем, что созданием объектов занимается редактор, а не в начале игрового процесса, как можно было бы ожидать. Если вы попытаетесь определить конструктор для компонента скрипта, это помешает нормальной работе Unity и может вызвать серьезные проблемы с проектом.
Управление игровым объектом
Как отмечалось выше, сценарий определяет только план для Компонента, поэтому ни один из его кодов не будет активирован, пока экземпляр сценария не будет присоединен к игровому объекту. Вы можете прикрепить скрипт, перетащив ресурс скрипта в GameObject на панели иерархии или в инспекторокно Unity, в котором отображается информация о текущем выбранном игровом объекте, активе или настройках проекта, что позволяет вам проверять и редактировать значения. Дополнительная информация
См. в Словарь выбранного игрового объекта. В меню «Компонент» также есть подменю «Сценарии», которое будет содержать все сценарии, доступные в проекте, в том числе те, которые вы создали сами. Экземпляр скрипта очень похож на любой другой компонент в Инспекторе:

После прикрепления скрипт начнет работать, когда вы нажмете Play и запустите игру. Вы можете проверить это, добавив следующий код в функцию Start:-
// Use this for initialization
void Start ()
{
Debug.Log("I am alive!");
}
Debug.Log – это простая команда, которая просто выводит сообщение на консоль Unity. Если вы нажмете «Воспроизвести сейчас», вы должны увидеть сообщение в нижней части главного окна редактора Unity и в окне консоли (меню: Окно > Общие > КонсольСокращение от игровая консоль
См. в Словарь).
MonoDevelop заменен Visual Studio с 2018.1