Unity 6.3
0 онлайн 57 гостей 3 в системе
Вход
Программирование в Unity Шаг 3 из 210

Введение в программирование в Unity

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

Вы можете использовать Editor APIs для настройки и расширения авторских инструментов Editor для улучшения рабочих процессов разработки. Вы можете использовать Engine APIs для определения функциональных возможностей приложения во время выполнения, включая графику, физику, поведение персонажей и ответы на ввод пользователя.

API скриптов ссылка даёт полный и авторитетный справочник по всем открытым API Unity. Руководство добавляет к нему контекст и рекомендации.

Скриптовая среда Unity

Unity поддерживает скрипты на языке программирования C#. C# (произносится C-sharp) является управляемым, объектно-ориентированным языком программирования, который является частью платформы .NET и работает в кросс-платформенном runtime .NET. Другие языки .NET могут быть использованы с Unity, если они могут компилировать совместимый DLL, см. Управляемые плагины для более подробной информации.

Среда скриптов относится к обоим:

  • Ваша собственная локальная среда или контекст, в котором вы пишете код. Это включает редактор кода (IDE) и интегрированное решение управления исходным кодом и операционную систему.
  • Скриптовая среда C# предоставляет Unity. Заданная версия Unity поддерживает заданную версию платформы .NET, которая определяет библиотеки .NET, которые вы можете использовать в своем коде.

Дополнительные сведения об окружении и инструментах скриптов см. в Окружающая среда и инструменты.

Как работают сценарии в Unity

C# скрипты (файлы с .cs расширение файла) являются активов в вашем проекте, хранящихся в Assets папку и сохраняется как часть база данных об активах. Вы можете создавать шаблонные скрипты, которые происходят из общего встроенный Unity типы через Скриптирование подменю Активы > Создать меню.

Вы настраиваете по умолчанию Внешний Редактор Скриптов, который является программой Unity, в которой открываются ассеты вашего скрипта для редактирования. Обычно это будет один из поддерживаемых IDEs для разработки Unity.

Вы можете создавать свои собственные обычные типы C# и логику для использования в вашей игре, если код, который вы пишете, совместим с активным профилем .NET. Но ваши скриптовые типы получают дополнительную функциональность в Unity, когда они наследуют от встроенного типа Unity.

Если ваши пользовательские типы наследуют от UnityEngine.Object, они будут назначаемы полям в окне Inspector. Наследование от MonoBehaviour позволяет скрипту быть прикрепленным к GameObject в качестве компонента для управления поведением GameObject в сцене.

Дополнительные сведения о фундаментальных типах Unity, которые можно наследовать, см. в Основные типы Unity.

Дополнительные сведения о просмотре скриптов и редактировании компонентов скриптов в Inspector см. в Просмотр сценариев.

Редактор и скрипты времени выполнения

Существует два различных контекста, в которых может запускаться ваш код:

  • В Unity Editor во время создания, обычно как часть пользовательских инструментов редактирования и окон, которые поддерживают ваш собственный процесс разработки.
  • В приложении во время выполнения, как часть пользовательского интерфейса.

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

Регионы кода также могут быть условно компилированы для использования только Редактором с помощью директивы препроцессора #if UNITY_EDITOR. Для более подробной информации см. Условная компиляция.

Большая часть основных открытых API Unity находится либо в UnityEditor или UnityEngine APIs в пространстве UnityEditor пространства имен доступны только в Редакторе, и попытка использовать их в коде во время выполнения приводит к ошибкам компиляции.

Работая в Редакторе, вы можете иметь код, который вы хотите запустить как в режиме редактирования, так и в режиме воспроизведения. Вы можете вызвать некоторые UnityEditor APIs в режиме воспроизведения для целей тестирования, визуализации или запуска операций с ассетами. Аналогичным образом, вы можете вызвать UnityEngine APIs в режиме редактирования, используя атрибуты [ExecuteInEditMode] или [ExecuteAlways] для этих секций кода.

Тем не менее, всегда помните исключить из сборок Player в режиме выполнения скрипты Редактора и код, использующий UnityEditor APIs.

Компиляция и перезагрузка кода

Компиляция преобразует C# код, который вы пишете, в код, который работает на данной целевой платформе. Некоторые аспекты компиляции находятся под вашим контролем, а другие нет. Организуя ваши скрипты в сборки, вы можете уменьшить ненужную перекомпиляцию и эффективно управлять зависимостями. С условной компиляцией вы можете избирательно включать или исключать секции вашего кода из компиляции.

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

Дополнительные ресурсы