Создание и Использование Скриптов
Поведение игровых объектов контролируется с помощью компонентов ( Components ), которые присоединяются к ним. Несмотря на то, что встроенные компоненты Unity могут быть очень разносторонними, вскоре вы обнаружите, что вам нужно выйти за пределы их возможностей, чтобы реализовать ваши собственные особенности геймплея. Unity позволяет вам создавать свои компоненты, используя скрипты . Они позволяют активировать игровые события, изменять параметры компонентов, и отвечать на ввод пользователя каким вам угодно способом.
Unity изначально поддерживает три языка программирования:
- C# (произносится как Си-шарп), стандартный в отрасли язык подобный Java или C++;
- UnityScript, язык, разработанный специально для использования в Unity по образцу JavaScript;
В дополнение к этим, с Unity могут быть использованы многие другие языки семейства .NET, если они могут компилировать совместимые DLL — см. эту страницу для получения подробностей.
Изучение искусства программирования и использования этих языкам выходит за рамки данного введения. Однако есть множество книг, обучающих материалов и ресурсов для изучения программирования в среде Unity. Посетите Обучающий раздел на нашем сайте для получения подробной информации.
Создание скриптов
В отличии от других ассетов, скрипты обычно создаются непосредственно в Unity. Вы можете создать скрипт используя меню Create в левом верхнем углу панели Project или выбрав Assets > Create > C# Script (или JavaScript/Boo скрипт) в главном меню.
Новый скрипт будет создан в папке, которую вы выбрали в панели Project. Имя нового скрипта будет выделено, предлагая вам ввести новое имя.
Лучше ввести новое имя скрипта сразу после создания чем изменять его потом. Имя, которое вы введете будет использовано, чтобы создать начальный текст в скрипте, как описано ниже.
Структура файла скрипта
После двойного щелчка на скрипте в Unity, он будет открыт в текстовом редакторе. По умолчанию Unity будет использовать MonoDevelop, но вы можете выбрать любой редактор из панели External Tools в настройках 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 . Вы можете думать о классе как о своего рода плане для создания нового типа компонента, который может быть прикреплен к игровому объекту. Каждый раз, когда вы присоединяете скриптовый компонент к игровому объекту, создается новый экземпляр объекта, определенный планом. Имя класса берется из имени, которое вы указали при создании файла. Имя класса и имя файла должны быть одинаковыми, для того, чтобы скриптовый компонент мог быть присоединен к игровому объекту.
Основные вещи, достойные внимания, это две функции, определенные внутри класса. Функция Update — это место для размещения кода, который будет обрабатывать обновление кадра для игрового объекта. Это может быть движение, срабатывание действий и ответная реакция на ввод пользователя, в основном всё, что должно быть обработано с течением времени во игровом процессе. Чтобы позволить функции Update выполнять свою работу, часто бывает полезно инициализировать переменные, считать свойства и осуществить связь с другими игровыми объектами до того, как будут совершены какие-либо действия. Функция Start будет вызвана Unity до начала игрового процесса (т.е. до первого вызова функции Update), и это идеальное место для выполнения инициализации.
Заметка для опытных программистов: вы можете быть удивлены, что инициализация объекта выполняется не в функции-конструкторе. Это потому, что создание объектов обрабатывается редактором и происходит не в начале игрового процесса, как вы могли бы ожидать. Если вы попытаетесь определить конструктор для скриптового компонента, он будет мешать нормальной работе Unity и может вызвать серьезные проблемы с проектом.
A UnityScript script works a bit differently to C# script:
#pragma strict function Start () < >function Update ()
Здесь функции Start и Update имеют такое же значение, но класс не объявлен явно. Предполагается, что скрипт сам по себе определяет класс; он будет неявно производным от MonoBehaviour и получит своё имя от имени файла скриптового ассета.
Управление игровым объектом
Как было сказано ранее, скрипт определяет только план компонента и, таким образом, никакой его код не будет активирован до тех пор, пока экземпляр скрипта не будет присоединен к игровому объекту. Вы можете прикрепить скрипт перетаскиванием ассета скрипта на игровой объект в панели Hierarchy или через окно Inspector выбранного игрового объекта. Имеется также подменю Scripts в меню Component, которое содержит все скрипты, доступные в проекте, включая те, которые вы создали сами. Экземпляр скрипта выглядит так же, как и другие компоненты в окне Inspector:-
После присоединения скрипт начнет работать, когда вы нажмете Play и запустите игру. Вы можете проверить это добавив следующий код в функцию Start:-
// Use this for initialization void Start ()
Debug.Log это команда, которая просто выводит сообщение на консольный вывод Unity. Если вы нажмете сейчас Play, вы увидите сообщение внизу основного окна редактора Unity в окне Console (меню: Window > Console ).
7 языков, на которых можно писать в Unity
Те кто знаком с Unity знают, что написание скриптов происходит при помощи языков C# и JavaScript. На самом деле языков куда больше и в статье мы расскажем вам об этом.
Движок поддерживает несколько популярных языков программирования, так что вам не придется учить новый язык с нуля. Нужно только выбрать один из языков, которыми уже владеете, «прокачать» его и можно начинать экспериментировать. Причем дело не сводится только к C#, нормально работать с Unity можно и с использованием JavaScript, Python и ряда других языков, на этом сегодня остановимся подробнее.
C#
Если владеете этим языком программирования, то сможете использовать потенциал Unity на 100%. По сути, все библиотеки Unity написаны именно на C Sharp. В Unity используется Mono – open-source проект, являющийся одной из вариаций Microsoft. NET.
C Sharp – довольно простой в освоении язык, к тому же вам не нужно знать его досконально. Для работы с Unity достаточно базовых навыков. Его синтаксис схож с C++, Java, так что если владеете одним из этих языков, то освоить C Sharp будет еще проще.
В Unity в роли основного может быть несколько языков. Многое зависит от команды разработчиков, их целей.
Boo
Язык выпущен в 2011 г., автор – Родриго де Оливейра, этот же человек в прошлом активно работал над Unity. Синтаксис Boo – нечто среднее между IronPython и CPython, через настройку компилятора его можно сделать динамически-типизированным хотя по умолчанию он таковым не является.
Язык прост и удобен, синтаксис не перегружен сложными предложениями. В Unity он поддерживался до тех пор, пока над платформой работал его автор. Как только Оливейра ушел из команды, поддержка Boo была прекращена.
Причина проста – язык непопулярен и нет смысла тратить ресурсы на его дальнейшую поддержку. Он не может привлечь новых разработчиков в Unity, не дает никаких преимуществ по сравнению с другими языками и просто не окупает усилий, затрачиваемых на его поддержку в платформе.
JavaScript
Наряду с C# был базовым языком Unity. В платформе использовался UnityScript, этот язык несколько отличается от классического JS. US правильнее было бы назвать специальной версией JavaScript синтаксис схож, но отличий хватает. Например, в US отсутствует возможность переназначения переменных, нельзя использовать необязательные точки с запятой.
До недавнего времени коды скриптов давались как на C#, так и на UnityScript. Но в последнее время от US команда Unity отказывается. Причем не просто прекратили его поддерживать, а активно переводят все скрипты на C# и в будущем UnitySript будет искоренен полностью. С середины 2017 г. авторам скриптов рассылается предупреждение о необходимости перевода кода в C#. Так что, если собрались изучать этот язык, лучше оставьте эту затею.
Обойти это ограничение можно через компилятор на GitHub, специально ограничивать использование JS в Unity никто не собирается. Но работать с таким «костылем» все же не так удобно.
Lua
Lua – довольно специфический язык с однообразным синтаксисом, широко используется разработчиками игр. Именно на Lua создана большая часть модов для World of Warcraft. В других проектах этот язык часто используется для написания AI.
Что касается Unity, то в платформе используется специальный интерпретатор MoonSharp, чтобы можно было подключить сторонний код, написанный на Lua. MoonSharp не стоит рассматривать как замену C#.
IronPython и IronRuby
Оба языка – результат реализации Python и Ruby соответственно на платформе .NET. Чтобы использовать их в Unity придется немного повозиться с подключением нужных библиотек , их можно найти на GitHub. Все материалы в свободном доступе.
После подключения обоих языков можно будет вызывать скрипты, написанные на них, прямо из C# кода. Бонусом получим возможность вызова .NET библиотек из Python.
Rust
Если сравнивать скорость и технические возможности, то Rust сопоставим с С++, язык не имеет проблем с безопасностью, скоростью и параллелизмом. В прошлом его называли неплохим вариантом для разработки ядер ОС.
В среднем 1.0-1.5% программистов регулярно используют Rust, пик популярности еще впереди, поэтому не стоит обращать внимания на столь незначительный процент. Функции и методы можно вызвать из Unity кода, но напрямую писать их не выйдет. Тем не менее, и такой уровень поддержки Rust отметить стоит.
C/C++
Использование этих языков стало привычной практикой для проектов, в которых важна скорость и надежность работы. Это универсальный язык, используется не только в разработке игр, но и в разработке операционных систем, прикладного ПО – вариантов применения масса. В Unity поддержка этих языков реализована «из коробки», то есть можно сразу переходить к созданию плагинов.
Новичкам в геймзидайне рекомендуем эти языки осваивать на старте обучения. Они просты, а знания, которыми овладеете на старте, пригодятся в будущем.
Заключение
Если собрались работать в Unity, то придется освоить C#, игнорировать этот язык не получится. Зацикливаться только на нем не обязательно, платформа поддерживает разношерстные языки программирования, так что каждый найдет вариант себе по душе. Исключением является разве что JavaScript. От него команда Unity решила отказаться и в будущем US вряд ли вернется, так что его для работы с Unity изучать не стоит. В остальном ограничений нет, работать можно с любым из перечисленных языков.
Больше интересных новостей
6 ошибок, которые часто встречаются в резюме IT-специалистов
Сравнение зарплат Python разработчика в Москве, Киеве и Минске
Лучшие университеты в сфере ИТ: ТОП-10
Гаджеты будущего: как программное обеспечение меняет нашу жизнь
Комментарии (1)
Кирилла 10 декабря 2022 в 01:47
Так, а где питон в unity то, такое чувство что в статью вкинули просто так, поправьте если ошибаюсь
Игорь 19 января 2023 в 10:21
Абсолютно согласен
Михаил С. 20 ноября 2023 в 16:34
Научитесь программированию в Unity
Хотите программировать собственные компьютерные игры? Начните с бесплатных наборов и обучающих материалов по программированию на Unity Learn, а также не забывайте про наше замечательное сообщество.
Unity FPS Microgame
Программируйте игры с Unity
Новички могут загрузить Unity бесплатно и начать с готовых ресурсов Unity Microgame и Mod. Затем углубите знания с помощью обучающих материалов и изучите структуру C#, языка программирования игр в Unity. Научитесь разрабатывать простые скрипты на C# для программирования игрового процесса, механики, визуальных эффектов, систем ИИ и других элементов.
Создавайте красивые игры
Реализуйте свои способности к программированию в Unity! Это может стать началом вашей успешной карьеры. Unity — самая популярная платформа разработки игр в мире: 50% всех мобильных игр созданы в Unity! Профессия Unity-разработчика находится в первой десятке по росту востребованности в США согласно данным LinkedIn.
Introduction to C# scripting in Unity
Что такое C#?
Скрипты в Unity разрабатываются на языке C# (произносится как «си-шарп»), который имеет богатые возможности и прост в изучении. Предлагаем вашему вниманию простое и понятное введение в программировании на C# в Unity, которое также включает информацию о базовом синтаксисе языка, то есть о переменных, функциях и классах.
Unity Creator Kit: Code
Создайте свой первый скрипт в Unity
Наборы Creator Kit — это простые игровые проекты, доступные на Unity Learn. Каждый из них можно изучить и освоить за несколько часов В наборе Creator Kit для начинающих программистов вы познакомитесь с основами разработки скриптов на C# для Unity в контексте игры жанра экшен-RPG.
Create with Code course from Unity
Полный курс: Create with Code in Unity
Create with Code — это официальный вводный курс Unity по программированию, содержащий более 37 часов насыщенного образовательного контента. В процессе разработки прототипа, решения задач по программированию и ответов на вопросы вы освоите базовые принципы программирования на примере разработки собственного игрового проекта на C# с нуля.
Другие способы учиться программированию в Unity
Обучающие материалы по программированию на C# в Unity
У нас есть масштабная коллекция коротких уроков, где рассматриваются основы программирования на C# в Unity. Начните с материалов для начинающих, а затем переходите к коллекции для опытных пользователей.
Как создать видеоигру, не имея опыта программирования
Даже если вам плохо дается программирование, вам все равно доступно множество инструментов для Unity, удобных для художников и дизайнеров, а также ресурсов в Asset Store, нативно интегрирующихся в интерфейс редактора.
На этой странице
- Создавайте в Unity не программируя
- Visual scripting с Bolt
- Visual scripting с PlayMaker
- Визуальный скриптинг с Adventure Creator
- Учитесь основам программирования с Unity
- Unity для художников и дизайнеров
Создавайте в Unity не программируя
Да, большая часть интерактивного контента, созданного в Unity, опирается на текстовые программы. Unity поддерживает язык программирования C#, в котором нужно понимать два аспекта: логика и синтаксис. Логику можно описать словами «что должно произойти», а синтаксис — это язык, позволяющий передать логику.
Но если у вас нет опыта работы в Unity или в программировании, а вы просто хотите понять базовые принципы и понятия, то мы советуем вам загрузить бесплатную версию редактора Unity, выбрав вариант «Новые пользователи» на странице «Начало работы». Во время загрузки вы сможете выбрать готовый шаблон Microgame, который автоматически откроется в редакторе после запуска.
Сразу же после загрузки Microgame вы сможете вносить небольшие изменения, следуя интерактивным руководствам в редакторе, шаг за шагом знакомящим вас с вашими первыми творческими задачами в Unity.
Освоив руководства, вы сможете продолжить работу над Microgame, используя нашу коллекцию пакетов Mod, каждый из которых позволяет развивать вашу игру простыми и приятными способами.
Кроме того, в магазине Asset Store опубликовано множество инструментов, позволяющих с легкостью решить большинство задач, не имея существенного опыта программирования. Взгляните на три лучших ресурса в следующих разделах.
Visual scripting с Bolt
Bolt, бесплатный для всех версий Unity, — это инструмент воплощения ваших идей в творческом, удобном интерфейсе системы визуального программирования, созданной лауреатом престижных премий, разработчиком программ и игр Лазло Бонином. Между Bolt и Unity нет никакого интегрирующего слоя, что упрощает их взаимодействие. Bolt ускоряет ваши навыки прототипирования, позволяет быстрее воплотить идеи в жизнь.
«Я хотел создать графическое средство визуального проектирования для визуалов: тех, кому нравится хороший дизайн и отзывчивость интерфейса, тех, кто хочет с первого взгляда определять точный момент и место, где возникла ошибка или предупреждение» (Лазло Бонин, издатель Bolt).
Bolt в действии
Лазло Бонин приступил к разработке Bolt еще в то время, когда он и его студия все еще работали над сюжетным приложением Ephemera с возможностью исследования окружающего мира. Им нужен был графический интерфейс для машин состояний, чтобы художники и аниматоры могли внести изменения в структуру сцены и игрового процесса, не отвлекая программистов от основной работы над ключевыми системами.
Bolt открывает непосредственный доступ к классам вашего собственного персонажа, к классам предметов и многому другому. Вы просто вызываете функции в интерфейсе и задаете атрибуты.
«Ни мне, ни моим пользователям не требуется никаких дополнительных действий — Bolt подхватывает все автоматически. Он напрямую анализирует и считывает всю кодовую базу и показывает доступные варианты».
Visual scripting с PlayMaker
Если вы — дизайнер или художник, который хочет реализовать свои творческие возможности без программирования, то PlayMaker поможет вам в этом. С этим средством вы сможете быстро создать прототип игрового процесса и алгоритмы поведения ИИ, а также графы анимации и интерактивные объекты. Этот инструмент для визуального программирования также использовался в разработке таких игр, как Hearthstone, INSIDE и Dreamfall Chapters.
«Playmaker — это самый логичный и интуитивно понятный способ реализации различных функций наших игр для всех, кто не связан с программированием!» Андреас Н Грёнтвед, INSIDE
PlayMaker в действии
Playmaker — это инструмент визуального программирования, позволяющий работать с визуальным представлением скриптов, не обращая внимания на текстовое содержание. Логика представлена взаимосвязанными друг с другом графами, а синтаксис строится автоматически, с помощью готовых шаблонов Action, выбираемых пользователем.
Такой инструмент, как PlayMaker, интегрированный в Unity, открывает разработчикам, работающим над сюжетом, взаимодействиями между персонажами и объектами, возможность реализовать нужные алгоритмы, не углубляясь в синтаксис языка программирования.
Хотите увидеть PlayMaker в действии? Посмотрите видеоролики, где рассказывается, как реализовать интерактивность с помощью visual scripting и PlayMaker.
Многие создатели игр часами корпели над синтаксисом кода и потратили кучу времени на устранение ошибок компилятора, но вам это совершенно необязательно. Сосредоточьтесь на том, что важно для вас.
Визуальный скриптинг с Adventure Creator
Adventure Creator будет вам полезен, если вы хотите создать 2D-, 2,5D- или 3D-игру в Unity без программирования. Система визуальных скриптов и интуитивный редактор позволяют новичкам создать всю игру от начала до конца, не тратя время на программирование, а также помогают программистам внедрять и проверять на практике собственные решения.
«Это невероятно! Здесь есть все инструменты для создания игры жанра point-n-click профессионального качества без единой вручную написанной строчки кода. Кроме того, редактор очень полезен, он помог мне устранить множество ошибок и реализовать сложные идеи» (Эш Дентон, Capital).
Adventure Creator в действии
Еще один инструмент, упрощающий жизнь простым пользователям, художникам и дизайнерам в Unity, рассмотрен в истории Эша Дентона.
Он работал над роликами для Inside XBox, а также является одним из авторов серии роликов Thank You for Playing.
Благодаря сообществу Unity он узнал об Adventure Creator, открытом и гибком инструменте, который помог поместить 2D-персонажей в трехмерный мир. Этот инструмент замечателен для художников и простых пользователей тем, что позволяет создавать события и кнопки с помощью графов, а диспетчер сцены выстраивает логику сцены, включая горячие точки, навигацию и триггеры.
Учитесь основам программирования с Unity
Если вы хотите узнать о принципах программирования в Unity, то рекомендуем вам ознакомиться со следующими бесплатными ресурсами на сайте Learn:
- «Набор для творчества: основы программирования» — в этом коротком проекте для начинающих вы познакомитесь с основами программирования на C# для Unity в контексте игры жанра Action-RPG.
- «Творите, программируя» — в рамках данного официального курса от Unity вы познакомитесь с принципом «Творите, программируя», с нуля создавая ваши собственные проекты на C#.
- Руководства по C#: коллекция коротких руководств, объясняющих принципы работы скриптов на C# в Unity, для начинающих и других пользователей. Начните с руководств по C# для начинающих, а затем переходите к руководствам по C# для пользователей среднего уровня.
Кроме того, вы можете подписаться на Learn Premium, где опубликованы как материалы по программированию от нашей команды, так и одобренные Unity курсы партнерских платформ, включая Coursera, Udemy, Pluralsight и Pathstream.
И наконец, наши пользователи готовы поделиться с вами бесплатными обучающими ресурсами по программированию в Unity, включая Brackeys, Code Monkey, и Jabrils.
Unity для художников и дизайнеров
Редактор Unity — это инструмент совместного творчества художников, дизайнеров, разработчиков и других сотрудников студии. Здесь есть инструменты для дизайна 2D- и 3D-сцен, работы с сюжетом и анимационными роликами, освещением, звуковым оформлением, спрайтами и системами частиц, а также невероятно функциональная система анимации. Смотрите обзор функций:
Unity Asset Store предлагает тысячи других ресурсов, дополнительно ускоряющих вашу разработку: персонажи, текстуры, окружения, ассеты для анимации, 3D-модели и звуковое оформление, а также расширения для редактора и готовые проекты.