где писать код для unity

Создание и Использование Скриптов

Поведение игровых объектов контролируется с помощью компонентов (Components), которые присоединяются к ним. Несмотря на то, что встроенные компоненты Unity могут быть очень разносторонними, вскоре вы обнаружите, что вам нужно выйти за пределы их возможностей, чтобы реализовать ваши собственные особенности геймплея. Unity позволяет вам создавать свои компоненты, используя скрипты. Они позволяют активировать игровые события, изменять параметры компонентов, и отвечать на ввод пользователя каким вам угодно способом.

Unity supports the C# programming language natively. C# (pronounced C-sharp) is an industry-standard language similar to Java or C++.

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

Создание скриптов

Unlike most other assets, scripts are usually created within Unity directly. You can create a new script from the Create menu at the top left of the Project panel or by selecting Assets > Create > C# Script from the main menu.

Новый скрипт будет создан в папке, которую вы выбрали в панели Project. Имя нового скрипта будет выделено, предлагая вам ввести новое имя.

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

Структура файла скрипта

When you double-click a script Asset in Unity, it will be opened in a text editor. By default, Unity will use Visual Studio, but you can select any editor you like from the External Tools panel in Unity’s preferences (go to Unity > Preferences).

Содержимое файла будет выглядеть примерно так:

Скрипт взаимодействует с внутренними механизмами Unity за счет создания класса, наследованного от встроенного класса, называемого MonoBehaviour. Вы можете думать о классе как о своего рода плане для создания нового типа компонента, который может быть прикреплен к игровому объекту. Каждый раз, когда вы присоединяете скриптовый компонент к игровому объекту, создается новый экземпляр объекта, определенный планом. Имя класса берется из имени, которое вы указали при создании файла. Имя класса и имя файла должны быть одинаковыми, для того, чтобы скриптовый компонент мог быть присоединен к игровому объекту.

Заметка для опытных программистов: вы можете быть удивлены, что инициализация объекта выполняется не в функции-конструкторе. Это потому, что создание объектов обрабатывается редактором и происходит не в начале игрового процесса, как вы могли бы ожидать. Если вы попытаетесь определить конструктор для скриптового компонента, он будет мешать нормальной работе Unity и может вызвать серьезные проблемы с проектом.

Управление игровым объектом

Как было сказано ранее, скрипт определяет только план компонента и, таким образом, никакой его код не будет активирован до тех пор, пока экземпляр скрипта не будет присоединен к игровому объекту. Вы можете прикрепить скрипт перетаскиванием ассета скрипта на игровой объект в панели Hierarchy или через окно Inspector выбранного игрового объекта. Имеется также подменю Scripts в меню Component, которое содержит все скрипты, доступные в проекте, включая те, которые вы создали сами. Экземпляр скрипта выглядит так же, как и другие компоненты в окне Inspector:-

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

После присоединения скрипт начнет работать, когда вы нажмете Play и запустите игру. Вы можете проверить это добавив следующий код в функцию Start:-

Debug.Log is a simple command that just prints a message to Unity’s console output. If you press Play now, you should see the message at the bottom of the main Unity editor window and in the Console window (menu: Window > General > Console).

2018–03–19 Page amended with limited editorial review

MonoDevelop replaced by Visual Studio from 2018.1

Источник

Научитесь программированию в Unity

Хотите программировать собственные компьютерные игры? Начните с бесплатных наборов и обучающих материалов по программированию на Unity Learn, а также не забывайте про наше замечательное сообщество.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Unity FPS Microgame

Новички могут загрузить Unity бесплатно и начать с готовых ресурсов Unity Microgame и Mod. Затем углубите знания с помощью обучающих материалов и изучите структуру C#, языка программирования игр в Unity. Научитесь разрабатывать простые скрипты на C# для программирования игрового процесса, механики, визуальных эффектов, систем ИИ и других элементов.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Реализуйте свои способности к программированию в Unity! Это может стать началом вашей успешной карьеры. Unity — самая популярная платформа разработки игр в мире: 50% всех мобильных игр созданы в Unity! Профессия Unity-разработчика находится в первой десятке по росту востребованности в США согласно данным LinkedIn.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Introduction to C# scripting in Unity

Скрипты в Unity разрабатываются на языке C# (произносится как «си-шарп»), который имеет богатые возможности и прост в изучении. Предлагаем вашему вниманию простое и понятное введение в программировании на C# в Unity, которое также включает информацию о базовом синтаксисе языка, то есть о переменных, функциях и классах.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Unity Creator Kit: Code

Наборы Creator Kit — это простые игровые проекты, доступные на Unity Learn. Каждый из них можно изучить и освоить за несколько часов В наборе Creator Kit для начинающих программистов вы познакомитесь с основами разработки скриптов на C# для Unity в контексте игры жанра экшен-RPG.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Create with Code course from Unity

Create with Code — это официальный вводный курс Unity по программированию, содержащий более 37 часов насыщенного образовательного контента. В процессе разработки прототипа, решения задач по программированию и ответов на вопросы вы освоите базовые принципы программирования на примере разработки собственного игрового проекта на C# с нуля.

Другие способы учиться программированию в Unity

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Обучающие материалы по программированию на C# в Unity

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

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Learn C# from Brackeys

Советуем вам изучить эту серию видеороликов с популярного канала Brakeys на YouTube, где рассматриваются основы разработки скриптов на C# в Unity.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Автор: Jabrils

Разработчик ПО и опытный блогер Jabrils рассказывает на YouTube о том, как он учился программировать, и публикует собственные материалы для начинающих в плейлисте Everything you need to start programming.

Источник

Создание и Использование Скриптов

Unity изначально поддерживает три языка программирования:

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

Создание скриптов

В отличии от других ассетов, скрипты обычно создаются непосредственно в Unity. Вы можете создать скрипт используя меню Create в левом верхнем углу панели Project или выбрав Assets > Create > C# Script (или JavaScript/Boo скрипт) в главном меню.

Новый скрипт будет создан в папке, которую вы выбрали в панели Project. Имя нового скрипта будет выделено, предлагая вам ввести новое имя.

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

Структура файла скрипта

После двойного щелчка на скрипте в Unity, он будет открыт в текстовом редакторе. По умолчанию Unity будет использовать MonoDevelop, но вы можете выбрать любой редактор из панели External Tools в настройках Unity.

Содержимое файла будет выглядеть примерно так:

Заметка для опытных программистов: вы можете быть удивлены, что инициализация объекта выполняется не в функции-конструкторе. Это потому, что создание объектов обрабатывается редактором и происходит не в начале игрового процесса, как вы могли бы ожидать. Если вы попытаетесь определить конструктор для скриптового компонента, он будет мешать нормальной работе Unity и может вызвать серьезные проблемы с проектом.

A UnityScript script works a bit differently to C# script:

Здесь функции Start и Update имеют такое же значение, но класс не объявлен явно. Предполагается, что скрипт сам по себе определяет класс; он будет неявно производным от MonoBehaviour и получит своё имя от имени файла скриптового ассета.

Управление игровым объектом

Как было сказано ранее, скрипт определяет только план компонента и, таким образом, никакой его код не будет активирован до тех пор, пока экземпляр скрипта не будет присоединен к игровому объекту. Вы можете прикрепить скрипт перетаскиванием ассета скрипта на игровой объект в панели Hierarchy или через окно Inspector выбранного игрового объекта. Имеется также подменю Scripts в меню Component, которое содержит все скрипты, доступные в проекте, включая те, которые вы создали сами. Экземпляр скрипта выглядит так же, как и другие компоненты в окне Inspector:-

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

После присоединения скрипт начнет работать, когда вы нажмете Play и запустите игру. Вы можете проверить это добавив следующий код в функцию Start:-

Источник

Программирование в Unity для опытных программистов

В Unity скрипты можно использовать для разработки практически любого элемента игры или интерактивного контента с графикой реального времени. Unity поддерживает скрипты на C#, созданные в соответствии с одним из двух основных подходов: традиционным и широко использующимся объектно-ориентированным подходом и информационно-ориентированным подходом, который теперь тоже поддерживается в Unity в отдельных случаях благодаря нашему высокопроизводительному многопоточному стеку информационно-ориентированных технологий (DOTS).

Unity поддерживает C#, стандартный в отрасли язык программирования, в некоторой степени похожий на Java или C++.

По сравнению с C++, C# легче в изучении. Кроме того, он относится к категории языков «с управлением памятью», то есть он автоматически распределяет память, устраняет утечки и так далее.

Как правило C# удобнее C++, если вам нужно в первую очередь разработать игру, а потом уже работать над различными сложными аспектами программирования.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Вся интерактивность и игровой процесс в Unity строятся на основе трех фундаментальных блоков: объекты GameObject, компоненты и переменные.

Любой объект в игре является GameObject, будь то персонажи, источники света, спецэффекты, декорации и все остальное.

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

Компоненты (Component) определяют поведение игровых объектов, к которым они прикреплены, и управляют ими. Простой пример — создание источника света, включающее прикрепление компонента Light к GameObject (см. ниже). Таким же примером может быть добавление компонента Rigidbody к объекту, чтобы он мог падать.

Компоненты имеют ряд свойств или переменных, которые можно настроить в окне Inspector редактора Unity и/или с помощью скрипта. В примере выше к свойствам источника света относятся дальность, цвет и интенсивность.

В Unity есть множество самых разнообразных компонентов, но вы вскоре можете столкнуться с необходимостью создать собственный компонент для реализации своих алгоритмов. Это можно сделать с помощью скриптов, в которых описана ваша собственная игровая логика и поведение объектов, и которые затем прикрепляются к игровым объектам как компоненты. Каждый скрипт связывается с внутренними механизмами Unity путем реализации класса, производного от встроенного класса MonoBehaviour.

Компоненты на основе скриптов позволяют запускать игровые события, проверять объект на предмет столкновений, применять физические свойства, программировать реакцию на управление пользователя и многое другое. См. Unity Scripting API для дополнительной информации.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Традиционная модель «игровой объект — компонент» хорошо работает и сегодня, поскольку она проста как для программистов, так и других пользователей, а также удобна для создания интуитивных интерфейсов. Добавите компонент Rigidbody к объекту GameObject — он начнет падать, добавите компонент Light — GameObject начнет излучать свет. Все остальное также подчиняется этой простой логике.

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

Компоненты и игровые объекты относятся к «тяжелым объектам C++». Все объекты GameObject имеют имя. Их компоненты представляют собой оболочки для C# поверх компонентов на C++. Это упрощает работу с ними, но может влиять на производительность, если они будут храниться в памяти без явной структуры. Объект C# может находиться на любом участке памяти. Объект C++ также может находиться в любом участке памяти. Группировка и последовательное размещение объектов в памяти отсутствуют. При каждой загрузке в центральный процессор для обработки объект приходится собирать по частям из разных участков памяти. Это может сильно замедлить загрузку, а оптимизация потребует много усилий.

Для решения этих проблем мы начали перерабатывать базовые системы Unity на основе высокопроизводительного, многопоточного стека информационно-ориентированных технологий или DOTS (в настоящее время в статусе предварительной версии).

DOTS позволяет вашей игре эффективно использовать все возможности новейших многоядерных процессоров. Стек состоит из следующих компонентов:

ECS — это новая система компонентов в составе DOTS; все традиционные объектно-ориентированные манипуляции над GameObject отражаются на экземпляре в новой системе. Название «Компонент» никак не изменилось. Важнейшее отличие — в структуре данных. Подробнее об этом можно узнать из статьи «О DOTS: Entity Component System».

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

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

Многопоточные системы DOTS помогают создавать игры для самых разных устройств и разрабатывать богатые игровые миры с большим числом элементов и сложными симуляциями. Производительный код, в свою очередь, снижает тепловыделение и продлевает время автономной работы мобильных устройств. Переход от объектно-ориентированного к информационно-ориентированному подходу упрощает вам многократное использование кода, а другим позволяет легче понять и дополнить его при необходимости.

Некоторые из технологий DOTS все еще находятся в статусе предварительной версии, поэтому мы советуем разработчикам использовать стек для решения отдельных вопросов производительности проекта, не строить на базе DOTS весь проект. См. раздел «Дополнительные ресурсы» в конце этой страницы, где указаны ссылки на ключевые ресурсы DOTS.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

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

Вот несколько полезных ресурсов по оптимизации в Unity:

Наилучшие методики для общих случаев (включая подробные советы по оптимизации системы интерфейса Unity)

Источник

Где писать код для unity

Главная » Введение в скрипты Unity — часть 1

Введение в скрипты Unity — часть 1

Создание скриптов — неотъемлемая часть даже самых простых игр. Эти небольшие наборы кода работают вместе, чтобы делать самые разные вещи.

Версия: C# 7.3, Unity 2019.2, Unity

Создание скриптов — неотъемлемая часть даже самых простых игр. Эти небольшие наборы кода работают вместе, чтобы делать самые разные вещи: от перемещения персонажа по экрану до отслеживания инвентаря. Разработчики игр пишут скрипты в Unity на C#, мощном объектно-ориентированном языке программирования, разработанном Microsoft около 2000 года. С тех пор он стал одним из самых популярных языков программирования. Команда Unity выбрала C# в качестве основного языка программирования Unity, поскольку он хорошо документирован, прост в освоении и гибок.

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

Перед началом убедитесь, что вы соответствуете следующим требованиям:

Итак, вы готовы открыть для себя Unity API, создав простую игру!

Приступая к работе

Скачайте материалы для проекта с помощью кнопки «Скачать материалы урока» вверху страницы, распакуйте их куда-нибудь и откройте стартовый проект в Unity.

Для начала обратите внимание на окно Project и разверните папку RW. Этот проект поставляется с набором готовых ассетов, которые вы будете использовать, чтобы вдохнуть жизнь в игру с помощью скриптов:

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Чтобы сосредоточиться на написании скриптов, вот включенные папки ресурсов и их содержимое:

Теперь откройте сцену Game в папке RW / Scenes, если она еще не открыта, и посмотрите вокруг в режиме просмотра Scene.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

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

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Вот краткий обзор игровых объектов:

Затем нажмите кнопку воспроизведения в верхней части редактора и посмотрите на представление Game, чтобы увидеть, что происходит.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

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

Нажмите кнопку play еще раз, чтобы остановить тестирование «игры».

Теперь, когда вы знакомы с проектом, пора приступить к написанию скриптов!

Ваш первый скрипт

Создавать новые скрипты в Unity довольно просто. Щелкните правой кнопкой мыши папку RW / Scripts, выберите Create > C# Script и назовите скрипт Rotate.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Хотя скрипт еще ничего не делает, вы уже можете использовать его как компонент, прикрепив его к игровому объекту. В этом случае скрипт Rotate будет вращать колеса всех ветряных мельниц.

Компоненты — это экземпляры скриптов, что означает, что вы можете добавить столько компонентов к любому игровому объекту, сколько захотите. Любые изменения, внесенные в скрипт, отразятся на всех его компонентах.

Разверните Scenery в Иерархии, чтобы раскрыть его потомков. Откройте Windmill в редакторе префабов, щелкнув стрелку рядом с его названием.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Примечание. Редактор Unity недавно обновил систему префабов. Чтобы получить более подробное представление о новой системе, ознакомьтесь с этим замечательным руководством!

Выберите Wheel, это потомок Windmill. Теперь нажмите кнопку Add Component в нижней части Инспектора, начните вводить «rotate», пока в списке не появится компонент Rotate, и выберите его.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Это добавит компонент Rotate к колесам всех ветряных мельниц.

Чтобы отредактировать скрипт, вам нужно открыть его в редакторе кода, таком как Visual Studio. Есть несколько способов открыть скрипт, но самый простой — найти исходный файл в окне Project и дважды нажать на него. Двойной щелчок по полю Script любого компонента также работает:

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Используйте любой из описанных выше методов, чтобы открыть скрипт Rotate в редакторе кода по умолчанию. Вот как это выглядит в Visual Studio:

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

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

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

Примечание. Функции — это другое название методов, все они являются подпрограммами. В языках ООП, таких как C#, вам следует использовать термин «метод», но Unity предпочитает вместо этого использовать функцию при описании большинства своих встроенных методов.

Unity по умолчанию добавляет методы Start и Update во все новые скрипты. На самом деле это функции событий, они вызываются, когда их запускает определенное действие. Вот несколько наиболее распространенных функций обработки событий, и когда они вызываются:

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

Добавьте следующую строку внутри метода Update :

Эта строчка кода, которая постоянно создает вращение по оси Y с течением времени, уже демонстрирует некоторые возможности Unity API:

Примечание. Редактор Unity использует углы Эйлера для изменения поворота игрового объекта — это знакомые оси X, Y и Z. На самом деле движок Unity внутренне использует кватернионы, которые состоят из значений X, Y, Z и W. Эти значения очень сложно интерпретировать, и они не предназначены для прямого использования. Чтобы узнать больше о различиях, взгляните на документацию Unity по этому вопросу.

Сохраните этот скрипт и вернитесь в редактор.

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

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Если вы еще не вышли из режима редактирования префаба, сделайте это сейчас, щелкнув стрелку влево рядом с префабом Windmill в Иерархии. Вам будет предложено сохранить или отменить изменения. Нажмите на кнопку Save.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Теперь запустите воспроизведение сцены. Вы заметите, что колеса ветряной мельницы теперь медленно вращаются, так расслабляюще.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Теперь предположим, что вы хотите настроить скорость вращения колес или добавить компонент Rotate к другому игровому объекту, который должен вращаться по другой оси. Было бы неплохо, если бы вы могли изменить эти значения в редакторе?

Вот тут-то и пригодятся переменные!

Переменные

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

Откройте скрипт Rotate в вашем любимом редакторе кода и добавьте следующую строку прямо над методом Start :

Эта переменная изменит скорость и по какой оси будет происходить вращение.

Модификатор public в контексте Unity означает, что эта переменная будет доступна редактору и другим классам.

Vector3 — это структура, в которой хранятся значения X, Y и Z, Vector3 может использоваться для передачи положения, поворота или масштаба игрового объекта.

Теперь замените эту строку:

Всегда выбирайте переменную вместо «магического числа», такого как 50, которые вы добавили ранее. Это позволит вам изменять и повторно использовать значения, не открывая скрипт.

Теперь сохраните скрипт и вернитесь в редактор. Откройте префаб Windmill из Иерархии, как вы делали раньше, и снова выберите игровой объект Wheel.

Взгляните на Inspector, компонент Rotate теперь имеет поле, которое вы можете настроить:

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Измените значение Y в поле Rotation Speed на 120 и выйдите из режима префаба, нажав на стрелку в верхнем левом углу Иерархии, и сохранив изменения при появлении запроса.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Теперь поиграйте в сцену. Колеса вращаются, как и раньше, но чуть быстрее.

Огромным преимуществом наличия переменных в редакторе является то, что вы можете изменять их в режиме воспроизведения! Выберите колесо одной из ветряных мельниц в окне Hierarchy и попробуйте изменить параметр скорости вращения Rotation Speed. Вы можете перемещать значение Y слева направо или изменять число напрямую.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Это приведет к тому, что колесо изменит свою скорость в реальном времени:

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

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

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

Находясь в режиме игры, измените вращение одного из колес на все, что, по вашему мнению, выглядит хорошо, например, на 150 по оси Y. Теперь щелкните правой кнопкой мыши компонент Rotate вокруг его имени в Инспекторе или щелкните левой кнопкой мыши шестеренку параметров в правом верхнем углу компонента и выберите Copy Component. Это скопирует компонент и его значения в буфер обмена.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Далее остановите режим воспроизведения. Вы заметите, что скорость возвращается к своему прежнему значению в Inspector. Щелкните правой кнопкой мыши имя компонента Rotate и выберите Paste Component Values. Все значения, которые вы скопировали, теперь вставляются в компонент Rotate.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Хотя это изменило скорость вращения одной из ветряных мельниц, вы хотите применить такое значение ко всем. Для этого выберите ветряную мельницу, которую вы изменили, и выберите Overrides > Apply All в правом верхнем углу Inspector, чтобы применить все изменения к префабу Windmill.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Ввод игрока и создание экземпляров префабов

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

Движение

Создайте новый скрипт C# в RW / Scripts, назовите его HayMachine и откройте его в редакторе кода.

Добавьте следующие переменные прямо над Start :

Эта переменная позволит вам указать скорость, с которой может двигаться машина.

Теперь добавьте этот метод ниже Update :

Этот фрагмент кода перемещает сеноуборочную машину, используя горизонтальный ввод игрока:

Когда Unity не обнаруживает никаких вводных данных, horizontalInput останется на 0 и машина не будет двигаться.

Теперь, чтобы вызвать метод, который вы добавили для каждого кадра, добавьте к нему вызов в Update :

Затем сохраните этот скрипт и вернитесь в редактор. Выберите Hay Machine в Иерархии и добавьте к нему компонент Hay Machine.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Установите Movement Speed на 14 и воспроизведите сцену. Используйте клавиши со стрелками или A и D для перемещения машины слева направо. Все работает!

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

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

Снова откройте скрипт HayMachine и добавьте следующую переменную под другими:

Эта переменная будет использоваться для ограничения движения по оси X. В качестве значения по умолчанию присваивается 22, это будет начальное значение, которое также будет заполнено в редакторе.

Вот что изменилось:

Изображение ниже более наглядно иллюстрирует происходящее:

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Белые линии слева и справа обозначают границы, линия, проходящая через машину, является ее центром. Перемещение машины в любом направлении «блокирует» ее при достижении границы:

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Сохраните скрипт и вернитесь в редактор. Попробуйте воспроизвести сцену и еще раз переместить машину влево и вправо. Машина останавливается, как только она перемещается к одному из краев.

Далее вы будете реализовывать скрипт стрельбы тюками сена!

Создание и стрельба снарядами

Прежде чем вы сможете начать что-либо запускать, вам нужно создать игровой объект для сена. Начните с создания нового пустого игрового объекта в окне Hierarchy, нажав правой кнопкой мыши на пустое пространство и выбрав Create Empty. Это создаст пустой игровой объект с именем GameObject в корне Иерархии.

Не снимая выделения с пустого GameObject, измените его имя на Hay Bale в Инспекторе и сбросьте его компонент Transform, щелкнув правой кнопкой мыши на компонент Transform и выбрав Reset.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Теперь добавьте 3D-модель в Hay Bale, перетащив модель Hay Bale из RW / Models на Hay Bale в Иерархии. Не снимая выделения с модели Hay Bale, назовите ее Hay Bale Model и сбросьте ее компонент Tranform. Теперь вы заметите сено, твердо стоящее на поверхности, как в режиме сцены, так и в режиме игры.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Затем выберите Hay Bale и добавьте следующие компоненты с помощью кнопки Add Component:

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Теперь, когда сено имеет необходимые компоненты для использования физики и может вращаться для анимации, пришло время настроить его.

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

Для начала установите флажок Is Trigger на Box Collider, чтобы тюк не мог толкать твердые тела. Затем установите флажок Is Kinematic на его Rigidbody, чтобы сено не провалилось сквозь поверхность. Наконец, установите Rotation Speed при вращении на (X: 300, Y: 50, Z: 0).

Сохраните сцену и нажмите кнопку воспроизведения. Вы заметите, что сено крутится на месте.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Чтобы сено двинулось вперед, вам нужно написать еще один служебный скрипт. Создайте новый скрипт C# в RW / Scripts, назовите его Move и откройте его в редакторе кода.

Добавьте следующие объявления переменных в начало класса прямо над методом Start :

Вот для чего они нужны:

Теперь добавьте в Update следующее:

Это то, что на самом деле перемещает игровой объект с помощью translation, это геометрический термин, который означает преобразование точки на расстояние в заданном направлении. По сути, это означает перемещение игрового объекта в контексте Unity.

Сохраните этот скрипт и вернитесь в редактор. Добавьте компонент Move в Hay Bale, установите для него Movement Speed на (X: 0, Y: 0, Z: 20) и оставьте Space равным World.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Теперь запустите воспроизведение сцены, и вы увидите, как тюк сена летит к мостам и исчезает с экрана, отлично!

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Перетащите Hay Bale в папку RW / Prefabs, чтобы превратить его в префаб, и удалите оригинал из иерархии. Теперь вы сможете ссылаться на этот префаб, чтобы создавать больше игровых объектов типа Hay Bale, когда захотите.

Чтобы сеноуборочная машина выбрасывала тюки, вам нужно написать скрипт. Откройте скрипт HayMachine и добавьте следующие объявления переменных прямо над Start :

Вот краткое объяснение переменных:

Теперь добавьте метод ShootHay под UpdateMovement :

Чтобы вызвать приведенный выше код, вам понадобится код для запроса ввода. Добавьте следующий метод чуть выше ShootHay :

Вот что делает этот блок кода:

Это вызывает метод над каждым кадром.

Теперь сохраните скрипт и вернитесь в редактор. Выберите Hay Machine в Иерархии, разверните его, щелкнув стрелку слева, и посмотрите на окно Inspector.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Новые общедоступные переменные, которые вы только что добавили, стали полями, которые можно назначать. Перетащите Hay Bale из RW \ Prefabs в слот Hay Bale Prefab, перетащите дочерний игровой объект Hay Spawnpoint, который находится в Hay Machine, в слот Hay Spawnpoint и установите интервал стрельбы на 0,8.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Теперь сохраните сцену и нажмите кнопку воспроизведения. Перемещайте сеноуборочную машину с помощью клавиш со стрелками и стреляйте сеном с помощью клавиши пробела!

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Все должно работать как на GIF-изображении выше.

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

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Чтобы исправить это, вы разумно примените триггеры, теги и пару строк кода.

Теги и реакция на физику

Создать новый тег довольно просто: выберите Edit > Project Settings. в верхнем меню и откройте вкладку Tags and Layers в окне Project Settings. Теперь разверните список тегов, и вы заметите, что в проекте уже есть два предварительно загруженных тега: DestroyHay и DropSheep.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Нажмите кнопку + под списком тегов, назовите новый тег Hay и нажмите кнопку Save, чтобы добавить этот новый тег в список.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

После добавления тега Hay закройте окно настроек проекта и выберите Hay Bale в папке RW \ Prefabs. Откройте раскрывающееся меню Tag прямо под полем имени и выберите Hay.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Теперь разница между тюками сена и другими игровыми объектами очевидна: вы можете добавить область, которая разрушает сено при соприкосновении с ним. Добавьте новый пустой игровой объект в Hierarchy и назовите его Triggers. Сбросьте его Transform и добавьте пустой GameObject в качестве его дочернего элемента. Назовите этого потомка Hay Destroyer.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Выберите Hay Destroyer, установите его положение на (X: 0, Y: 4, Z: 68) и добавьте к нему Box Collider. Установите флажок Is Trigger на Box Collider и установите Size на (X: 60, Y: 8, Z: 12). Затем измените тег на DestroyHay. Теперь вы должны увидеть огромный коллайдер в форме прямоугольника, появившийся в представлении сцены, прямо за пределами поля обзора камеры.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Теперь, чтобы этот триггер уничтожил любое сено, вам нужно написать еще один служебный скрипт. Создайте новый сценарий C # внутри RW \ Scripts, назовите его DestroyOnTrigger и откройте его в редакторе кода. Полностью удалите методы Start и Update и добавьте вместо них это объявление переменной:

Эта строка позволит вам ввести имя любого тега, который уничтожит этот игровой объект.

Теперь добавьте этот метод под только что добавленной переменной:

Вот что происходит:

Сохраните этот скрипт и вернитесь в редактор. Время проверить!

Выберите Hay Bale в RW \ Prefabs, добавьте компонент Destroy On Trigger и измените Tag Filter на DestroyHay.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Теперь нажмите кнопку play и попробуйте снова коснуться сена. Вы заметите, что любое сено, попавшее в Hay Destroyer, мгновенно уничтожается.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

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

Скрипты для овец

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

Теперь овца в Инспекторе должна выглядеть так:

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Перетащите модель Sheep из RW \ Models на Sheep, чтобы придать ей визуальные эффекты. Назовите игровой объект, который вы только что добавили, Sheep Model, сбросьте его Transform и установите поворот по оси X на -90, чтобы голова выходила из поверхности.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Теперь эта овца готова к написанию скрипта!

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

Создайте новый скрипт C# с именем Sheep в RW \ Scripts и откройте его в редакторе кода.

Для начала овце просто нужно бежать вперед и исчезнуть, когда ее ударит тюк сена. Добавьте следующие объявления переменных прямо над Start :

Вот для чего они нужны:

Разобравшись с этим, добавьте эту строку в Update :

Затем добавьте этот метод ниже Update :

Вот суть этого метода:

Последняя часть заставляет овцу реагировать на физику, с добавлением следующего кода:

Вот что это делает:

На этом пока что, сохраните скрипт и вернитесь в редактор. Выберите Sheep в Иерархии и добавьте компонент Sheep. Установите Run Speed на 10 и Got Hay Destroy Delay на 1.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Теперь запустите воспроизведение сцены, выстрелите в овцу и посмотрите, что произойдет!

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Потрясающие! Овца перестает двигаться и исчезает, как вы это и закодировали. Что произойдет, если овца пробежит мимо, а вы ее не пристрелите? Перезапустите сцену и проверьте это.

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

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Когда овца касается этого триггера, она должна упасть и исчезнуть из поля зрения. Чтобы реализовать это, вам необходимо внести некоторые изменения в скрипт Sheep. Снова откройте его в редакторе кода и добавьте следующие объявления переменных ниже существующих:

Они говорят сами за себя, но вот краткий обзор:

Теперь назначьте необходимые ссылки, добавив это в Start :

Это находит и кэширует collider и rigidbody овцы для дальнейшего использования.

Затем необходимо настроить коллайдер овцы, чтобы на него повлияла гравитация. Для этого добавьте этот метод:

Теперь добавьте следующее в onTriggerEnter прямо под существующим оператором if:

Теперь сохраните этот скрипт и вернитесь в редактор. Выберите Sheep и измените значение Drop Destroy Delay на 4.

Запустите воспроизведение сцены еще раз и позвольте овце пройти мимо машины, чтобы посмотреть, что произойдет.

где писать код для unity. Смотреть фото где писать код для unity. Смотреть картинку где писать код для unity. Картинка про где писать код для unity. Фото где писать код для unity

Работает! Овца теперь падает и исчезает, когда игроку не удается ее спасти. Вот это мотивирует!

Теперь, когда овца действует так, как задумано, перетащите ее из Иерархии в папку RW \ Prefabs, чтобы превратить ее в префаб, и удалите оригинал из Иерархии.

Это первая часть урока по написанию скриптов. Похвалите себя, вы узнали основы создания скриптов для реализации игрового процесса в Unity.

Куда двигаться дальше?

Вы можете скачать готовый проект, нажав на кнопку «Скачать материалы урока» вверху страницы.

Если вы хотите узнать больше об API Unity, ознакомьтесь с этими полезными ресурсами:

Когда вы будете готовы сделать еще один шаг в написании скриптов с помощью Unity, ознакомьтесь со второй частью урока, вы пригласите целую стаю пушистых друзей и научитесь:

Мы надеемся, что вам понравился этот урок. Если у вас есть какие-либо вопросы или комментарии, то присоединяйтесь к обсуждению, а также делитесь в соцсетях, чтобы сохранить урок в репостах и закладках.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *