Unity выпустила Visual Search, инструмент для управления 3D-ассетами с помощью ИИ


Оглавление (нажмите, чтобы открыть):

Как включить подсказки для Unity в Visual studio?

Так как в версии 18 года любимую MonoDevelop больше не поддерживают, придется пользоваться VS. Все будет ничего, но подсказок как в моно нет, вернее есть но команд юнити там нет (Time, touch, PlayerPrefs и все остальное), как их включить? В VS code тоже их нет

2 ответа 2

Всё до банальности просто, достаточно установить расширения для Visual Studio для этого прожмите:

  1. Средства -> Расширения и обновления.(Tools -> Extentions and Updates..)
  2. В появившемся окне вбить в поисковике Unity.

Установить расширение. (Visual Studio 2020 Tools for Unity)

Но по идее без него должно было всё работать, вроде бы.

Использование инструментов Visual Studio для Unity Use Visual Studio Tools for Unity

В этом разделе мы рассмотрим, как использовать возможности интеграции и повышения производительности набора средств Visual Studio для Unity, а также как использовать отладчик Visual Studio для разработки Unity. In this section, you’ll learn how to use Visual Studio Tools for Unity’s integration and productivity features, and how to use the Visual Studio debugger for Unity development.

Открытие скриптов Unity в Visual Studio Open Unity scripts in Visual Studio

После настройки Visual Studio в качестве внешнего редактора скриптов для Unity открытие любого скрипта в редакторе Unity приводит к автоматическому запуску Visual Studio с выбранным скриптом. Once Visual Studio is set as the external script editor for Unity, opening any script from the Unity editor will automatically launch or switch to Visual Studio with the chosen script open. Просто дважды щелкните сценарий в проекте Unity. Just double click a script in your Unity project.

Кроме того, можно запустить Visual Studio без открытия скрипта в редакторе исходного кода, выбрав элемент Открыть проект C# в меню Unity Активы. Alternatively, you can open Visual Studio with no script open in the source editor by selecting Open C# Project from the Assets menu in Unity.

Доступ к документации по Unity Unity documentation access

Доступ к документации по созданию скриптов Unity можно быстро получать из Visual Studio. You can access the Unity scripting documentation quickly from Visual Studio. Если набор средств Visual Studio для Unity не находит документацию по API в локальном режиме, он попытается найти ее через Интернет. If Visual Studio Tools for Unity doesn’t find the API documentation locally, it will try to find it online.

  • В Visual Studio выделите API Unity, с которым хотите ознакомиться (или наведите на него курсор), а затем нажмите клавиши CTRL+ALT+M, CTRL+H. In Visual Studio, highlight or place the cursor over the Unity API you want to learn about, then press Ctrl+Alt+M, Ctrl+H

IntelliSense для сообщений API Unity Intellisense for Unity API Messages

Средство автозавершения кода IntelliSense позволяет легко реализовать сообщения API Unity в скриптах MonoBehaviour и помогает в изучении API Unity. Intellisense code-completion makes it easy to implement Unity API messages in MonoBehaviour scripts, and assists with learning the Unity API. Чтобы использовать IntelliSense для сообщений Unity, сделайте следующее: To use IntelliSense for Unity messages:

Поместите курсор на новую строку внутри тела класса, производного от MonoBehaviour . Place the cursor on a new line inside the body of a class that derives from MonoBehaviour .

Начните вводить имя сообщения Unity, например OnTriggerEnter . Begin typing the name of a Unity message, such as OnTriggerEnter .

После ввода букв «ontri» отображается список предложений IntelliSense. Once the letters «ontri» have been typed, a list of IntelliSense suggestions appears.

Выбранный элемент в списке можно изменить тремя способами: The selection on the list can be changed in three ways:

с помощью клавиш со стрелками ВВЕРХ и ВНИЗ; With the Up and Down arrow keys.

щелкая нужный элемент; By clicking with the mouse on the desired item.

продолжив ввод имени нужного элемента. By continuing to type the name of the desired item.

IntelliSense может вставить выбранное сообщение Unity, включая все необходимые параметры: IntelliSense can insert the selected Unity message, including any necessary parameters:

при нажатии клавиши TAB; By pressing Tab.

при нажатии клавиши ВВОД; By pressing Enter.

при двойном щелчке выбранного элемента. By double-clicking the selected item.

Мастер создания скриптов Unity MonoBehavior Unity MonoBehavior scripting wizard

Мастер MonoBehavior можно использовать для просмотра списка всех методов API Unity и быстрого выполнения пустого определения. You can use the MonoBehavior wizard to view a list of all the Unity API methods and quickly implement an empty definition. Эта функция, особенно со включенным параметром Создать комментарии для метода, полезна при изучении того, что доступно в Unity API. This feature, particularly with the Generate method comments option enabled, is helpful if you are still learning what’s available in the Unity API.

Создание определений пустых методов MonoBehavior с помощью мастера MonoBehavior. To create empty MonoBehavior method definitions with the MonoBehavior wizard:

В Visual Studio поместите курсор туда, где необходимо вставить методы, а затем нажмите клавиши CTRL+SHIFT+M для запуска мастера MonoBehavior. In Visual Studio, position the cursor where you want the methods to be inserted, then press Ctrl+Shift+M to launch the MonoBehavior wizard.

В окне Создание методов скрипта установите флажок рядом с именем каждого метода, который нужно добавить. In the Create script methods window, mark the checkbox next to the name of each method you want to add.

Чтобы выбрать необходимую версию, используйте раскрывающийся список Версия платформы. Use the Framework version dropdown to select your desired version.

Методы по умолчанию вставляются в позицию курсора. By default, the methods are inserted at the position of the cursor. В качестве альтернативы можно вставить их после любого метода, который уже реализован в классе. Для этого измените значение раскрывающегося списка точка вставки на нужное расположение. Alternatively, you can choose to insert them after any method that’s already implemented in your class by changing the value of the Insertion point dropdown to the location you want.

Если вы хотите, чтобы мастер создавал комментарии для выбранных методов, установите флажок Создать комментарии к методу. If you want the wizard to generate comments for the methods you selected, mark the Generate method comments checkbox. Эти комментарии позволяют лучше понять, когда вызывается метод и каковы его общие функции. These comments are meant to help you understand when the method is called and what its general responsibilities are.

Нажмите кнопку ОК, чтобы выйти из мастера и вставить методы в код. Choose the OK button to exit the wizard and insert the methods into your code.

Обозреватель проектов Unity Unity Project Explorer

Обозреватель проектов Unity показывает все файлы и каталоги ваших проектов Unity в том же виде, что и редактор Unity. The Unity Project Explorer shows all of your Unity project files and directories in the same way that the Unity Editor does. Это отличается от навигации по сценариям Unity с помощью обычного обозревателя решений Visual Studio, который организует их в проекты и решения, созданные Visual Studio. This is different than navigating your Unity scripts with the normal Visual Studio Solution Explorer, which organizes them into projects and a solution generated by Visual Studio.

В главном меню Visual Studio выберите Представление > Обозреватель проектов Unity. On the main Visual Studio menu, choose View > Unity Project Explorer. Сочетание клавиш: ALT+SHIFT+E Keyboard shortcut: Alt+Shift+E

Отладка Unity Unity debugging

Набор средств Visual Studio для Unity позволяет отлаживать скрипты редакторов и игр для проекта Unity с помощью мощного отладчика Visual Studio. Visual Studio Tools for Unity lets you debug both editor and game scripts for your Unity project using Visual Studio’s powerful debugger.

Отладка в редакторе Unity Debug in the Unity editor

Начать отладку Start debugging

Visual Studio можно подключить к Unity, нажав кнопку Воспроизвести, отмеченную меткой Подключить к Unity, или использовав клавишу F5. Connect Visual Studio to Unity by clicking the Play button labeled Attach to Unity, or use the keyboard shortcut F5.

Переключитесь в Unity и нажмите кнопку Воспроизвести, чтобы запустить игру в редакторе. Switch to Unity and click the Play button to run the game in the editor.

Когда игра запущена в редакторе Unity при подключении к Visual Studio, все проходимые точки останова будут приостанавливать выполнение игры и выводить соответствующую строку кода в Visual Studio. When the game is running in the Unity editor while connected to Visual Studio, any breakpoints encountered will pause execution of the game and bring up the line of code where the game hit the breakpoint in Visual Studio.

Остановка отладки Stop debugging

В Visual Studio нажмите кнопку Стоп или используйте сочетание клавиш SHIFT + F5. Click the Stop button in Visual Studio, or use the keyboard shortcut Shift + F5.

Дополнительные сведения об отладчике Visual Studio см. в статье First look at the Visual Studio Debugger (Первое знакомство с отладчиком Visual Studio). To learn more about debugging in Visual Studio, see First look at the Visual Studio Debugger.

Подключение к Unity и воспроизведение Attach to Unity and Play

Для дополнительного удобства кнопку Подключить к Unity можно заменить на режим Подключить к Unity и воспроизвести. For added convenience, you can change the Attach to Unity button to Attach to Unity and Play mode.

Щелкните небольшую стрелку вниз рядом с кнопкой Подключить к Unity. Click the small down arrow next to the Attach to Unity button.

В раскрывшемся меню выберите Подключить к Unity и воспроизвести. Select Attach to Unity and Play from the dropdown menu.

Затем на кнопке «Воспроизведение» появляется метка Подключение к Unity и воспроизведение. The play button becomes labeled Attach to Unity and Play. Нажатие этой кнопки или использование клавиши F5 приведет к автоматическому переключению на редактор Unity и запуску игры в редакторе, в дополнение к подключению отладчика Visual Studio. Clicking this button or using the keyboard shortcut F5 now automatically switches to the Unity editor and runs the game in the editor, in addition to attaching the Visual Studio debugger.

Чтобы автоматически остановить игру в редакторе Unity, в Visual Studio нажмите кнопку Стоп или используйте сочетание клавиш SHIFT+F5. Clicking the Stop button in Visual Studio or using the keyboard shortcut Shift+F5 will automatically stop the game in the Unity editor.

Отладка сборок проигрывателя Unity Debug Unity player builds

С помощью Visual Studio можно отлаживать сборки для разработки различных проигрывателей Unity. You can debug development builds of various Unity players with Visual Studio.

Включение отладки скриптов в проигрывателе Unity Enable script debugging in a Unity player

Чтобы открыть параметры сборки в Unity, выберите Файл > Параметры сборки. In Unity, open the Build Settings by selecting File > Build Settings.

В окне параметров сборки установите флажки Сборка разработки и Отладка скриптов. In the Build Settings window, mark the Development Build and Script Debugging checkboxes.

Выбор экземпляр Unity для присоединения отладчика Select a Unity instance to attach the debugger to

В главном меню Visual Studio выберите Отладка > Присоединить отладчик Unity. In Visual Studio, on the main menu, choose Debug > Attach Unity Debugger.

В диалоговом окне Выбор экземпляра Unity отображаются сведения о каждом экземпляре Unity, к которому можно подключиться. The Select Unity Instance dialog displays some information about each Unity instance that you can connect to.

Project Project

Имя проекта Unity, который выполняется в этом экземпляре Unity. The name of the Unity project that’s running in this instance of Unity.

Компьютер Имя компьютера или устройства, на котором выполняется этот экземпляр Unity. Machine The name of the computer or device that this instance of Unity is running on.

Тип Редактор, если этот экземпляр Unity выполняется как часть редактора Unity; Проигрыватель, если этот экземпляр Unity является автономным проигрывателем. Type Editor if this instance of Unity is running as part of the Unity Editor; Player if this instance of Unity is a stand-alone player.

Порт Номер порта UDP-сокета, через который данный экземпляр Unity обменивается данными. Port The port number of the UDP socket that this instance of Unity is communicating over.

Так как набор средств Visual Studio для Unity и экземпляр Unity взаимодействуют через сетевой UDP-сокет, ваш брандмауэр может об этом запросить. Because Visual Studio Tools for Unity and the Unity instance are communicating over a UDP network socket, your firewall might ask about it. В данном случае соединение нужно авторизовать, чтобы VSTU и Unity могли обмениваться данными. If this happens, you’ll have to authorize the connection so that VSTU and Unity can communicate.

Отладка библиотеки DLL в проекте Unity Debug a DLL in your Unity project

Многие разработчики Unity создают компоненты кода в виде внешних библиотек DLL, чтобы разрабатываемые ими функции можно было легко совместно использовать с другими проектами. Many Unity developers are writing code components as external DLLs so that the functionality they develop can be easily shared with other projects. Набор средств Visual Studio для Unity упрощает отладку кода в этих библиотеках DLL без создания проблем для другого кода в проекте Unity. Visual Studio Tools for Unity makes it easy to debug code in these DLLs seamlessly with other code in your Unity project.

В настоящее время набор средств Visual Studio для Unity поддерживает только управляемые библиотеки DLL. At this time, Visual Studio Tools for Unity only supports managed DLLs. Он не поддерживает отладку библиотек DLL машинного кода, например библиотек, созданных на языке C++. It does not support debugging of native code DLLs, such as those written in C++.

Обратите внимание, что описанный здесь сценарий предполагает, что у вас есть исходный код, то есть вы разрабатываете или повторно используете свой собственный код, или у вас есть исходный код для библиотеки стороннего разработчика и вы планируете его развернуть в проекте Unity как библиотеку DLL. Note that the scenario described here assumes that you have the source code—that is, you are developing or re-using your own first-party code, or you have the source code to a third-party library, and plan to deploy it in your Unity project as a DLL. Данный сценарий не описывает отладку библиотеки DLL, для которой у вас нет исходного кода. This scenario does not describe debugging a DLL for which you do not have the source code.

Отладка проекта с управляемой библиотекой DLL, используемой в проекте Unity To debug a managed DLL project used in your Unity project

Добавьте существующий проект библиотеки DLL в решение Visual Studio, которое создается набором средств Visual Studio для Unity. Add your existing DLL project to the Visual Studio solution generated by Visual Studio Tools for Unity. В ряде случаев вы можете создать новый проект с управляемой библиотекой DLL, который будет содержать компоненты кода проекта Unity. В этом сценарии в решение Visual Studio можно добавить новый проект с управляемой библиотекой DLL. Less commonly, you might be starting a new managed DLL project to contain code components in your Unity project; if that’s the case, you can add a new managed DLL project to the Visual Studio solution instead. Дополнительные сведения о добавлении нового или существующего проекта в решение см. в разделе Практическое руководство. Добавление проектов в решение. For more information on adding a new or existing project to a solution, see How to: Add Projects to a Solution.

В любом случае набор средств Visual Studio для Unity сохраняет ссылку на проект, даже если он должен повторно создать файлы проекта и решения, поэтому эти действия нужно будет выполнить только один раз. In either case, Visual Studio Tools for Unity maintains the project reference, even if it has to regenerate the project and solution files again, so you only need to perform these steps once.

Создайте ссылку на нужный профиль платформы Unity в проекте DLL. Reference the correct Unity framework profile in the DLL project. В Visual Studio в свойствах проекта DLL для свойства Целевая платформа укажите версию платформы Unity, которую вы используете. In Visual Studio, in the DLL project’s properties, set the Target framework property to the Unity framework version you’re using. Это библиотека базового класса Unity, соответствующая уровню совместимости API, на который ориентирован ваш проект, например библиотека базовых классов Unity full, micro или web. This is the Unity Base Class Library that matches the API compatibility that your project targets, such as the Unity full, micro, or web base class libraries. Благодаря этому ваша библиотека DLL не будет вызывать методы платформы, существующие на других платформах или уровнях совместимости, но которые могут отсутствовать в версии платформы Unity, которую вы используете. This prevents your DLL from calling framework methods that exist in other frameworks or compatibility levels, but which might not exist in the Unity framework version you’re using.

Указанные ниже действия требуется выполнять, только если вы используете устаревшую среду выполнения Unity. The following is only required if you are using Unity’s legacy runtime. В новой среде выполнения Unity такие выделенные профили версии 3.5 использовать не нужно. If you are using the new Unity runtime, you don’t need to use those dedicated 3.5 profiles anymore. Выберите профиль .NET 4.x, совместимый с вашей версией Unity. Use a .NET 4.x profile compatible with your Unity version.

Скопируйте библиотеку DLL в папку Asset (ресурсы) своего проекта Unity. Copy the DLL to your Unity project’s Asset folder. В Unity ресурсы представляют собой файлы, которые упаковываются и развертываются вместе с вашим приложением Unity, чтобы их можно было загружать во время выполнения. In Unity, assets are files that are packaged and deployed together with your Unity app so that they can be loaded at run-time. Так как библиотеки DLL связываются во время выполнения, их необходимо развертывать как ресурсы. Since DLLs are linked at run time, DLLs must be deployed as assets. Для развертывания в виде ресурса редактору Unity требуется, чтобы библиотеки DLL были помещены в папку Assets вашего проекта Unity. To be deployed as an asset, the Unity Editor requires the DLLs to be put inside the Assets folder in your Unity project. Предусмотрены два способа выполнения этой задачи. There are two ways you can do this:

Измените параметры сборки проекта DLL, чтобы добавить выполняемую после сборки задачу, которая скопирует выходные файлы DLL и PDB из выходной папки в папку Активы проекта Unity. Modify the build settings of your DLL project to include a post-built task that copies the output DLL and PDB files from its output folder to the Assets folder of your Unity project.

Измените параметры сборки проекта DLL, чтобы сделать выходной папкой папку Assets проекта Unity. Modify the build settings of your DLL project to set its output folder to be the Assets folder of your Unity project. Теперь файлы DLL и PDB будут сразу помещаться в папку Assets. Both DLL and PDB files will be placed in the Assets folder.

PDB-файлы необходимы для отладки, так как они содержат символы отладки библиотеки DLL и сопоставляют код DLL с формой его исходного кода. The PDB files are needed for debugging because they contain the DLL’s debugging symbols, and map the DLL code to its source code form. Если будет применяться устаревшая среда выполнения, Инструменты Visual Studio для Unity будут использовать сведения из файлов DLL и PDB для создания файла DLL.MDB. Это формат отладочных символов, применяемый устаревшим модулем обработки скрипов Unity. If you are targeting the legacy runtime, Visual Studio Tools for Unity will use information from the DLL and PDB to create a DLL.MDB file, which is the debug symbol format used by the legacy Unity scripting engine. Если будет применяться новая среда выполнения и формат Portable-PDB, Инструменты Visual Studio для Unity не будут пытаться преобразовывать символы, так как новая среда выполнения Unity может самостоятельно обрабатывать файлы Portable-PDB. If you are targeting the new runtime, and using Portable-PDB, Visual Studio Tools for Unity will not try to do any symbol conversion as the new Unity runtime is able to natively consume Portable-PDBs.

См. подробнее сведения о создании PDB-файлов. More information about PDB generation can be found here. Если будет применяться новая среда выполнения, убедитесь, что для параметра «Отладочная информация» задано значение «Переносимый» для корректного создания файла Portable PDB. If you are targeting the new runtime, please make sure that «Debugging Information» is set to «Portable», in order to properly generate Portable-PDB. Если будет применяться устаревшая среда выполнения, воспользуйтесь значением «Полный». If you are targeting the legacy runtime, you need to use «Full».


Выполните отладку своего кода. Debug your code. Теперь вы можете отлаживать свой исходный код DLL вместе с исходным кодом проекта Unity и использовать все доступные функции, например точки останова и пошаговое выполнение кода. You can now debug your DLL source code together with your Unity project’s source code, and use all the debugging features you are used to, such as breakpoints and stepping through code.

Сочетания клавиш Keyboard shortcuts

Для быстрого доступа средств Unity к функциям Visual Studio можно использовать соответствующие сочетания клавиш. You can quickly access the Unity Tools for Visual Studio functionality by using their keyboard shortcuts. Ниже приведен список таких сочетаний клавиш. Here’s a summary of the shortcuts that are available.

Команда Command Сочетание клавиш Shortcut Имя контекстной команды Shortcut command name
Открыть мастер MonoBehavior Open the MonoBehavior Wizard CTRL+SHIFT+M Ctrl+Shift+M EditorContextMenus.CodeWindow.ImplementMonoBehaviours EditorContextMenus.CodeWindow.ImplementMonoBehaviours
Открыть обозреватель проектов Unity Open the Unity Project Explorer ALT+SHIFT+E Alt+Shift+E View.UnityProjectExplorer View.UnityProjectExplorer
Доступ к документации по Unity Access Unity documentation CTRL+ALT+M, CTRL+H Ctrl+Alt+M, Ctrl+H Help.UnityAPIReference Help.UnityAPIReference
Присоединиться к отладчику Unity (проигрыватель или редактор) Attach to Unity debugger (player or editor) значение по умолчанию отсутствует no default Debug.AttachUnityDebugger Debug.AttachUnityDebugger

Если вас не устраивает сочетание клавиш по умолчанию, его можно изменить. You can change the shortcut key combinations if you don’t like the default. Чтобы узнать, как это сделать, см. статью Определение и настройка сочетаний клавиш в Visual Studio. For information on how to change it, see Identify and customize keyboard shortcuts in Visual Studio.

Полезные инструменты для Unity-разработчика — выбор эксперта игровой студии ComonGames Материал редакции

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

Сегодня в выпуске — рассказ одного из создателей казуальной RPG Bomberlands Анатолия Малкова о том, как велась разработка проекта и какие инструменты использовала команда.

Здравствуйте, я ведущий программист проекта Bomberlands в игровой студии ComonGames. Сегодня я расскажу на примере нашей разработки казуальной RPG Bomberlands, какие сервисы и инструменты могут отлично сэкономить время и усилия при создании графики, интерфейсов, анимации, аудио и игровых механик.

На днях исполняется ровно год с момента создания нашей студии. Тогда перед нами встало два основных вопроса: какой проект делать и на чём? Так как я в то время уже был достаточно близко знаком с Unity (который, в свою очередь, мне посоветовали из-за его кроссплатформенности), его возможностями и преимуществами, о которых я расскажу чуть позже, то наш выбор пал на Unity версии 4.2.

2014 год. В качестве первого игрового проекта наша тогда ещё безымянная команда решила реанимировать одну из старых и незаслуженно забытых игр. Такой игрой была выбрана Minebombers. В 90-х годах в неё с удовольствием «резались» в классах по информатике.

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

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

Вот как тогда выглядел наш прототип:

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

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

Поэтому был переработан сеттинг (мультихайтек), главный герой (миньон-кротан), сюжет, механика, интерфейсы. Были добавлены такие RPG-элементы, как квесты, прокачка скиллов и экипировки героя, создание и прокачка собственной базы. Появились PVP-бои. Главный интерфейс был переработан в виде интерактивной локации, в роли которой выступила лаборатория кротана. Размер карты уменьшен, и из песочницы прототип превратился в RPG-аркаду с большой разрушаемостью объектов.

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

Перейдём к технической части.

Все это мы начали делать на Unity 4. Начать воплощать на этом движке свои игровые концепты можно практически сразу — за счёт простоты разработки, большого количества статей, видеоуроков и локализованных справочных материалов. Благодаря этому вокруг движка образовалось обширное сообщество разработчиков, каждый из которых вносил свой посильный вклад в наполнение магазина плагинов и расширений Asset Store.

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

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

Несмотря на низкий порог вхождения, который неизбежно порождает немало низкокачественных или очень простых игр, что, в свою очередь, вызывает пренебрежительное отношение к движку среди некоторых разработчиков, четвертая и в особенности пятая версии Unity позволяют создавать игры AAA-класса. Недаром разработчики оригинального Fallout при разработке Wasteland 2 выбрали именно его.

Кстати, у нас переход на пятую версии произошёл на удивление гладко. Раньше, как правило, многие скрипты приходилось править вручную из-за изменений, вносимых в новую версию движка. Так, многие плагины, разработанные на Unity 3.x, отказывались работать в четвертой версии, пока сам не исправишь их скрипты. Разработчики движка учли это, и теперь автоапдейтер решает 95% проблем , возникающих при переходе на пятую версию.

Перед началом разработки советую всем хорошенько прошерстить Asset Store. Наверняка вы найдёте с десяток полезных инструментов, которые сэкономят вам от 50% до 90% времени разработки.

Первый по важности — инструмент по созданию интерфейсов. С ним у Unity были проблемы вплоть до последних релизов четвертой версии движка, поэтому неудивительно, что в магазине появился с десяток различных GUI-инструментов. Какие-то лучше, какие-то хуже, но в большинстве случаев выбор обусловлен личными предпочтениями. Если вы научились работать с каким-то инструментом, и он может решить 90% ваших задач, то нет особенного желания разбираться с их конкурентами.

Сейчас многие задачи можно решить и встроенными средствами, но мы всё ещё остаёмся верны NGUI. Этот плагин был в своё время революционным. На нём построен практически весь наш 2D-интерфейс. Хорошая производительность, удобная работа с атласами, событиями, вызовами программ, к тому же у популярных сторонних плагинов считается хорошим тоном иметь интеграцию с NGUI.

Как я уже упоминал, главный интерфейс у нас представлен в виде интерактивной локации. Что-то вроде корабля «Нормандия» из Mass Effect. Локации, активные зоны, интерактивные объекты, плавно двигающиеся камеры, управление персонажем, анимации событий и сцен — на этих элементах держится большинство квестов. Неудивительно, что в Asset Store появилось немало инструментов по их созданию.

Для меня бесспорным лидером стал Adventure Creator. Именно он отвечает за нашу лабораторию.

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

Написание такого самодельного квестового движка — задача нетривиальная. К счастью, это уже сделали за нас. Вариантов таких движков тоже немало, но наш выбор остановился на Dialogue System for Unity.

Он состоит из нескольких элементов: квестовая БД, квестовый интерфейс и квестовые триггеры. БД можно заполнять как внутри Unity, так и импортируя квестовые БД из других широко распространённых инструментов (Aurora (Neverwinter Nights), articy:draft, Chat Mapper). Для вызова диалогов и квестов или изменения их состояния достаточно установить соответствующие триггеры в игре, после попадания в которые будет вызвано нужное меню.

В комплект входит множество примеров интеграции с другими плагинами, начиная от NGUI и Daikon и заканчивая MasterAudio И PlayMaker. Именно он используется у нас для создания квестов.

Что такое ассеты Unity, где их скачать и как добавить

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

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

Например, к объекту Skeleton (скелет) могут быть прикреплены такие компоненты:

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

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

Какие бывают ассеты

К ассетам относятся:

  • спрайты — двумерные изображения игровых объектов (деревья, фон, персонажи);
  • аудио — музыка и звуковые эффекты;
  • визуальные эффекты — взрывы, фильтры, вибрация и прочее;
  • модели — трехмерные объекты (заменяют спрайты в трехмерных играх);
  • префабы — заготовки объектов (готовые объекты с прикрепленными компонентами);
  • текстуры — внешний вид для моделей;
  • сцены — локации для игры;
  • элементы интерфейса — шрифты, кнопки, изображения;
  • анимации — специальные файлы, в которых указывается порядок смены кадров для двумерных игр;
  • скрипты — игровой интеллект, код управления персонажем.

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

Где брать ассеты для Unity

По умолчанию в Unity есть стандартные ассеты (если вы не отключили их во время установки), но только для 3D-проектов. Для двумерных игр их приходится искать или создавать самостоятельно.

Самый простой вариант — скачать их в Unity Asset Store. Это официальный магазин, где можно найти как платные, так и бесплатные компоненты для игр. Здесь можно выбрать категории ассетов и нужное измерение (2D или 3D).

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

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

В Asset Store можно зайти прямо из редактора Unity — это удобно, если вам понадобились ассеты во время разработки и вы не хотите открывать браузер.

Если у вас старая версия Unity, вы можете указать в фильтре поиск только совместимых наборов. Для этого нужно перейти в старый магазин, нажать кнопку Filters и указать версию в поле Supported Unity Version.

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

Модели и текстуры:

Также можете поискать что-нибудь на форумах и сайтах для инди-разработчиков:

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

Это может быть дороже и дольше, чем использование готовых компонентов, но вы получите что-то созданное специально для вашего проекта. А значит, будете уверены, что ассеты уникальны, а не встретятся еще в десяти или двадцати играх.

Как создать ассеты для Unity самому

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

Спрайты можно нарисовать в Adobe Photoshop или Adobe Illustrator, но подойдет и MS Paint. Для этого нужно владеть векторной графикой или уметь рисовать в стиле pixel art. А еще можно просто сфотографировать реальный предмет, а потом обрезать фото и обработать его для игры.

Модели можно создавать в программах Blender или 3ds Max. Для этого нужно разбираться в трехмерной графике, в том числе и в создании скелетной анимации.

Скрипты пишут в MonoDevelop (встроенный редактор Unity) или любом другом редакторе кода. Для этого нужно знать JavaScript или C#, а также библиотеки для работы с Unity.

Аудио можно записать на диктофон, а потом обработать в Sony Sound Forge, Adobe Audition или в бесплатном Audacity. Могут получиться очень атмосферные эффекты, если у вас скрипят полы или двери. Также вы можете записать какую-нибудь композицию в Frutty Loops или Cubase.

На что обратить внимание при создании ассетов

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

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

Как использовать ассеты в Unity

Есть несколько способов добавить ассеты в Unity-проект. Самый простой — с помощью обозревателя поместить файлы в папку Assets.

Можно и перетащить их в поле Assets внутри редактора Unity. Там же можно создать новые скрипты или префабы.

Если проект еще не был создан, можно добавить набор ассетов с помощью кнопки Add Asset Package. Чтобы воспользоваться ею, нужно быть авторизованным. Также у вас должны быть уже куплены или добавлены ассеты из Asset Store.

Чтобы добавить ассет на локацию, его нужно перетащить из поля Assets в поле Scene.

Вы можете прикрепить ассет к уже готовому игровому объекту. Для этого надо выбрать объект и в поле Inspector нажать Add Component, а затем указать какой-нибудь компонент.

С помощью нескольких ассетов вполне можно создать простую игру.

Заключение

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

Кроме того, вам понадобятся знания в гейм- и левел-дизайне и дополнительные технические навыки. Если вы новичок в разработке игр, то получить нужные знания и почувствовать себя увереннее поможет учебный курс «Профессия разработчик игр».

Профессия разработчик игр

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

Unity выпустила Visual Search, инструмент для управления 3D-ассетами с помощью ИИ

Why would experienced developers care about visual scripting? It’s only for people allergic to code, right? We recently sat down with the author of Bolt and Chronos to hear how he got started, his ideas on code visualization, UX and the Asset Store itself.

The man behind popular Asset Store packages Bolt and Chronos is Lazlo Bonin, an award-winning 24-year-old, tool and game developer who works out of the collaborative, brightly lit GamePlay Space in downtown Montreal.

Bonin is passionate about contributing to the Unity community: “At some point when you spin off a tool from a game you’re working on – and it gets some level of polish and usability – it feels wrong to not share it. My first impulse is that I want other people to have it, and I think a lot of toolmakers have the same mentality. They don’t want their peers to have to reinvent the wheel, which is like Unity itself: Why would you code your own game engine when you have all these tools available?” And of course if your tool becomes popular, then it can help bootstrap the game that gave birth to it.

Long before he got started making tools, however, he was a self-taught game hobbyist: “When I was around 10, a cousin came over to my place, installed Visual Basic and left without any instructions.” While Bonin had been coding HTML, this was a completely new challenge for him. Fast-forward a couple of years and he was a super-intense hobbyist making numerous, unpublishable games that he laughingly describes as “crazily ambitious projects that I would discourage anyone from ever trying!”

When he was 19, he discovered Unity and began getting more serious about game dev. He gives shout-outs to assets like Full Inspector, which “was a godsend – it really supercharged the Unity Inspector and gave me much more flexibility in my designs. It was the first asset I imported on every project.” More recently, Bonin uses Odin – Inspector and Serializer a lot: “It’s one of the most useful, polished and amazing tools on the Asset Store.”

Bolt publisher Lazlo Bonin at GamePlay Space in Montreal.


Bolt: Forged in a game

While still a hobbyist, Bonin raised money for his education by designing websites and contributing to other people’s games, which led to the idea for his first asset, Chronos. “I was working on an unreleased tower-defense game and I wanted to slow my enemies down, keep them out of reach so I could have power over them. Then I realized that I should build such a tool for myself AND make it available for other people,” which he believes “is the spirit of the Asset Store” – taking shareable parts of the game you’re working on and package them for release to help other devs.

Like Chronos, Bolt was born while Bonin was working on another project. “I was on a small team doing a narrative, walk-around experience called Ephemera that takes place in Montreal , and we started looking for visual state machines that could help our artist and animator contribute to the scene structure and the gameplay while I focused on the core systems and coding. We looked at some solutions – and there were some really good ones on the Asset Store – but I’m a bit of a perfectionist so I really wanted it to be exactly the way I had in mind.”

While the Ephemera team sought funding, Bonin rolled up his sleeves and spent approximately nine months developing Bolt alone. “Once I got started on some of the features, I really wanted them to have an extra level of polish so I had some intense weeks! But it was worth it because it turned out the way I wanted it to be.”

Given his game-dev and design backgrounds, he did all the coding and design work.

“That was very important for me because I wanted to make a visual tool, a tool that’s meant to work for visual thinkers, people who enjoy good design and visual feedback, people who want to know what’s going on at a glance, know when and where there’s an error or warning, for example. These considerations were as important to me as the back-end engine. So, as well as all the possibilities of what you can do with it, I focussed a lot on how it feels to use it.”

A Bolt Flow graph in action.

Once he’d laid the groundwork, but before it was truly functional, he solicited important design feedback.

“After around six months I put some experienced Montreal game-dev people in front of Bolt and asked: ‘Is this intuitive to you? Do you understand what happened here when I connected these two things? When I show you this graph, is it clear what it does?’”

When they couldn’t tell or didn’t know what was happening in the interface, he retooled the GUI to make it more intuitive. In the last few months of development, he put together a small group of people and had them alpha-test Bolt thoroughly.

Why he thinks Bolt can help fellow coders

Bonin is used to pushback from some developers on the idea of visual scripting. When he first announced Bolt’s availability (in the summer of 2020) he got a few comments like: “I don’t understand why a programmer would ever use a visual scripting tool.” So, as an experienced coder, why did Bonin spend nine months of essentially unpaid work developing something he didn’t necessarily need?

“As programmers, we have to realize that there are people out there who think and learn differently than we do and need different tools. It’s okay to see the value of that.” As obsessed with good design and user experience (UX) as he is with coding, Bonin’s been reading design thinkers like Bret Victor who advocate for better tools and ways of teaching programming.

“Victor says things like: ‘We innovate for the end users but not for our fellow devs. We don’t spend enough time improving their experience.’ He asks: ‘Why are we still coding blindly in text editors and have no idea what’s going on? How am I supposed to know that this value has an impact somewhere else and how am I going to visualize that?’”

Unity’s free Space Shooter demo after Bonin converted it to use Bolt.

Flow graphs vs state graphs

While one of Bolt’s features is flow graphs, Bonin is honest about the usefulness of them for adept developers.

“Look, if you’re a coder, you probably won’t need the flow graphs because Bolt gives you pretty much a one-to-one translation of code. However, state graphs can be quite beneficial even when you know how to code because they let you structure your logic in a way that’s not easy to visualize in code.

“For example, you could be looking at a gameplay scenario and thinking ‘This character is in an idle state, and while it’s in that state I will call other functions. And when an enemy comes nearby I will go into chase state, and in that state, I will call a bunch of other functions. . . . so it can be hard to visualize the code in all those states. That’s where a higher-level visualization can really help some people.”

Sample State graph showing AI behaviour for an NPC: Idle, patrol, chase, attack, etc.

Another area that he feels appeals to developers is that everything in their Unity code base is directly available in Bolt, as there is no integration layer between Bolt and Unity, which also simplifies maintenance. “You have immediate access to your own character classes and your own item classes, etc. You can just call functions from these inside Bolt and set properties. And an advantage for me is when Unity releases a new version with new components, etc., I don’t have to do anything nor do my users: Bolt just automatically picks it up. It directly analyzes and reads the entire code base and gives you options.”

Different aptitudes in the team sandbox

Bonin also sees Bolt – which has a user base of nearly 3000 – being employed by teams that have a mix of skill levels.

“If you have a diverse team with coders and artists, you can have the coders focus on some core systems, major C# classes, and how they interact, and still give your designers and artists access to them in Bolt. They can just play around with the parameters, figure out the structures, etc., without having to worry about how they actually work on a code level.”

In fact, he encourages that kind of approach for people just starting out. Even though he has provided extensive documentation, including tutorials, some people just want to jump in and see what happens.

“I have some artist and designer friends who when they first saw Bolt said, ‘We don’t know where to start,’ so I told them, just add a Bolt component to one of your GameObjects and press Play. And while it’s playing, you can keep adding nodes to it to see what they do. That’s one advantage to Bolt – you can do live editing and see everything in real-time. You can add, remove, change anything you want – it’s a kind of sandbox for you getting to know the engine, getting to know the tools that are available to you and hopefully trigger your creativity.”

2D platformer from a Bolt tutorial – A good sandbox for visual scripting.

A day in the life of an Asset Store publisher

So with thousands of users, more than 500 of whom are members of the Bolt community hosted on a Discord server , what’s Bonin’s typical day like?

“I start by reviewing private tickets, requests for education licenses, etc. Then I check to see what the community is saying, what they’re suggesting for ways to improve Bolt. And some of their ideas make a lot of sense, because when you get deep inside your own project you can sometimes lose perspective – so the community really helps me stay on track. Then I move on to fixing bugs. And with my free time I start working on the new features.

Being a one-person operation requires managing user expectations. “I recently had to stop referring to Ludiq as ‘we’ and only use ‘I’ so that the community understands why some things don’t get done as quickly as they might like. And I think a lot of the users understand that because my road map is public. While I get a lot of people drooling over new features, I still have to be careful about what I promise to deliver and when,” he says.

Ludiq’s headquarters in Montreal.

Advice for people creating their own tools

Finally, what would Bonin say to anyone, like himself, working on a game when they suddenly realize that they could spin some of their IP into an asset to assist others and possibly help finance their own passion project.

“On the design side, I suggest mocking up your tool, planning your UX and interactions, studying how the Unity Editor works and what its design language is. Familiarity is key for a good Unity tool, and I think a lot of people overlook that step. And on the technical side, if you’re just starting, I would recommend doing this tutorial for scripting custom tools, processes and tasks in the Editor, and you can also familiarize yourself with the Editor GUI API and its intricacies (check out this post on the Unity blog ).”

Free for new Unity Plus subscribers until April 5

If you sign up for a new Unity Plus subscription until April 5, you’ll get Bolt for free. Our Triple Boost with Unity Plus campaign also includes a full year of Unity Game Dev Courses at no additional cost and 20% off selected Asset Store products.

More about Visual Scripting

Learn how to get started using Bolt in this recent live session hosted by Unity’s own Ethan Bruins:

Go to our Visual Scripting page to learn about similar packages available on the Asset Store.

Заархивировано — Разработка игр с помощью Unity* и камеры Intel® RealSense™

Представлено: ALEXEY K., опубликовано: 20 августа 2015 г.

Выпуск комплекта Intel® RealSense™ SDK прекращен. Его поддержка и обновления более недоступны.

Автор: Gregor Biswanger, 28 мая 2015 г.

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

Unity* 3D — отличное кроссплатформенное решение от Unity Technologies. Оно предназначено для разработки игр для компьютеров, игровых консолей, мобильных устройств и веб-браузеров. В Unity 3D предусмотрена поддержка различных языков программирования, например C++, C#, Unity Script (похож на JavaScript*) и Boo.

Эта статья предназначена как для начинающих специалистов, так и для экспертов. Чтобы помочь тем, кто никогда раньше не работал с Unity, мы начнем с небольшого примера применения этого продукта. Затем я расскажу, как использовать Intel® RealSense™ SDK
и 3D-камеру Intel RealSense для отслеживания жестов и как создать простую игру на C#.
Для работы вам потребуется Visual Studio, Unity, Intel RealSense SDK и 3D-камера Intel RealSense.

Загрузка, установка и настройка Visual Studio

Загрузите бесплатную версию Unity. Она работает под ОС Microsoft Windows*
и Apple Mac* OS X*. Чтобы завершить установку, пройдите бесплатную регистрацию.

Программа, приведенная в этой статье для примера, написана на языке C#. В качестве кроссплатформенной интегрированной среды разработки в Unity по умолчанию используется MonoDevelop. Unity также можно использовать с Microsoft Visual Studio, что особенно удобно для разработчиков .NET. Для начала нужно подключить Visual Studio к Unity. В раскрываю­щемся меню выберите Edit -> Preferences…. На экране появится окно настроек. Выберите External Tools на панели с левой стороны (рис. 1). Нажмите MonoDevelop рядом с полем External Script Editor и выберите файл .exe Visual Studio, нажав кнопку Browse…. Установите Visual Studio, используя настройки по умолчанию. Путь к файлу запуска программы должен быть следующим.

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe.

Это все, что требуется для подключения.

Рисунок 1. Выбор Visual Studio* в Unity*

Среда

Перейдем к настройкам среды Unity. Главный экран состоит из нескольких окон. Вы можете разместить их вручную или выбрать стандартное расположение. Мы выбрали ориентацию Tall в раскрывающемся меню Layout в правом верхнем углу экрана.

Рисунок 2. Выбор положения окна

Окно построения сцены и окно игры

Первое большое окно (рис. 3) предназначено для построения сцены, то есть для размещения объектов игры. Обычно для него используется 3D-формат. Чтобы изменить положение объекта сцены, достаточно его перетащить. Сразу над главным экраном расположена вкладка игры. На ней показано готовое изображение, каким его увидит пользователь.

Рисунок 3. Окно построения сцены

Рисунок 4. Окно игры

Окно иерархии

В окне иерархии (рис. 5) представлен список используемых объектов, например предметы из самой игры, камеры, средства освещения сцены, элементы интерфейса и аудиозаписи. Чтобы создать новые объекты, используйте меню GameObject или окно Create.

Рисунок 5. Окно иерархии

Окно свойств

При выборе объекта в окне иерархии на экране появится окно его свойств (рис. 6). Их набор можно расширить, добавив в него дополнительные элементы. Для этого нужно нажать кнопку Add Component. Например, объекту можно назначить свойства твердого тела, чтобы в игре на него действовала гравитация.

Рисунок 6. Окно свойств

Окно проекта

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

Рисунок 7. Окно проекта

Создание простой игры

В начале 70-х Нолан Бушнелл, основатель Atari, выпустил игру, которая впоследствии стала очень популярной. Она называлась Pong и представляла собой простейший симулятор настольного тенниса. Игра заключалась в следующем. По экрану движется мячик. Каждый игрок управляет ракеткой, перемещая ее по вертикали. Если кому-то не удается отбить мяч, его соперник получает одно очко. Давайте разберемся, как реализовать эту игру с помощью Unity.

Чтобы создать новый проект, нажмите File -> New Project. Назовите его PingPongUnity.

Рисунок 8. Создание нового проекта

Ракетки

Для начала создадим ракетки. В окне иерархии нажмите Create -> 3D Object -> Cube. Чтобы изменить форму и расположение ракеток, выберите созданный куб и укажите нужные параметры в окне настроек. В нашем примере мы назвали объект Paddle1 и изменили его форму (см. графу Transform). Укажите следующие значения в графе scale. X: 0.5, Y:3, Z:1. Укажите следующие координаты в графе Position. X: -9, Y: 1, Z: 0. Таким образом мы создали первую ракетку. В окне иерархии нажмите правой кнопкой мыши на ракетку и в контекстном меню выберите Duplicate. На экране появится копия созданной ракетки. Осталось только переименовать ее в Paddle2 и изменить значение X в графе Position на 9.

Чтобы ракетки двигались согласно физическим законам, нам придется добавить компонент RigidBody, нажав кнопку Add Components для каждой из них. Так мы сможем управлять движением ракеток и их столкновением с мячом. Пока что наш мячик просто пролетает сквозь ракетку, а не отскакивает от нее. Это не совсем то, что требуется. Чтобы избежать этого, следует установить определенные ограничения на свойства объектов. Те объекты, которые будут удовлетворять указанным ограничениям, назовем RigidBody. Ракетки могут двигаться только вверх и вниз, так что в графе Freeze Rotation нужно выбрать x, y и z, а в графе Freeze Position — только x.

Рисунок 9. Ракетки

Стенки

Для этой игры также нужно создать две стенки (верхнюю и нижнюю), чтобы мячик отскакивал от них и не улетал за границы поля. Для этого нам снова понадобятся кубические объекты. В окне иерархии еще раз нажмите Create -> 3D Object -> Cube. Назовите созданный объект WallBelow. Он будет чуть длиннее ракеток, поэтому в графе scale укажите следующие значения. X: 23, Y: 1, Z: 1. В графе Position укажите следующее. X: 0, Y: -5, Z: 0.

Чтобы создать вторую стенку, достаточно скопировать первую и переименовать ее в WallAbove. Теперь просто измените значение Y-Position на 7.

Мячик

Осталось создать последний, самый важный объект игры — мячик. В наборе стандартных форм, представленном в Unity, уже есть нужная. В окне иерархии нажмите Create -> 3D Object -> Sphere. Измените название на Ball, в графе Position укажите следующие значения. X: 0, Y: 1, Z: 0. Чтобы мячик двигался нужным образом, необходимо включить ограничения RigidBody, нажав на кнопку Add Components, и снять галочку Use gravity.

Рисунок 11. Мячик

Изменение угла обзора и освещение сцены

Пока что ракурс выбран неудачно. Чтобы это исправить, нужно изменить настройки камеры. В окне иерархии выберите стандартную камеру Main Camera. Переключите формат обзора с 3D на 2D. Это можно сделать в разделе Projection. Вместо Perspective (3D) выберите Orthographic (2D). Теперь на экране представлена вертикальная проекция сцены. Измените значение параметра Size на 10.


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

Рисунок 12. Поворот камеры можно включить, нажав на значок осей координат

Мы установили все необходимые настройки камеры. Однако сцена остается слишком темной. Чтобы добавить освещение, откройте окно иерархии и нажмите Create -> Light -> Directional Light. Все изменения отображены в окне игры.

Рисунок 13. Окно игры

Давайте запустим мячик!

Поле готово, но все объекты пока замерли на месте. Если сейчас начать игру, мячик свалится вниз и этим все закончится. Чтобы это исправить, достаточно добавить в игру несколько строк кода на C#. Нажмите кнопку Create в окне проекта и создайте новый файл сценария под названием Ball для программы на языке C#. Перетащите его на мячик в окне иерархии или в окне отображения сцены, чтобы связать с объектом игры. Теперь при выборе мячика в окне свойств появится информация о файле сценария.

По двойному щелчку файла C# откроется выбранная среда разработки (MonoDevelop или Microsoft Visual Studio). Каждый вновь созданный файл содержит автоматически реализованный стандартный класс. Он называется MonoBehavior и является интерфейсом для Unity API. Метод Start выполняет инициализацию и подготовку к началу игры. Игровая среда, как телевизор, обрабатывает несколько изображений в секунду. Одно изображение называется кадром. Метод Update запускается каждый раз перед показом кадра. Таким образом реализуется то, что мы называем циклом игры. То есть игровые объекты могут действовать независимо от действий игрока.

В нашем случае требуется установить направление движения мячика в начале игры. Это можно сделать в методе Start. См. фрагмент программы ниже.

Фрагмент кода 1. Выбор направления движения мячика. Реализация на языке C#

Раздел компонентов — самая содержательная часть реализации. Для каждой игровой логики предусмотрен свой компонент. В приведенном фрагменте кода для доступа к компоненту Rigidbody текущего объекта игры используется метод GetComponent. Rigidbody отвечает за действие на объект сил гравитации. В программе мы создаем новый вектор Vector3 и присваиваем его velocity (скорость, свойство Rigidbody). Координаты вектора задаются случайным образом.

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

Давайте воспользуемся разделом Physic Material и выберем для мячика необходимые физические свойства. В окне проекта нажмите кнопку Create. Укажите имя Bouncy. Осталось только изменить некоторые свойства, чтобы добиться нужной прыгучести мячика. В окне свойств установите значение для параметров Dynamic Friction и Static Friction. Для Bounciness укажите 1. Значение Friction Combine должно быть минимально, а Bounce Combine — максимально.

Рисунок 14. Настройка физических свойств материала

Чтобы применить выбранные настройки к объектам игры, нужно сделать следующее. Нажмите Edit -> Project Settings -> Physics. Перетащите набор свойств под названием Bouncy в набор стандартных свойств Default material. Для параметра Bounce Threshold установите значение 0.1. Теперь мячик будет прыгать как резиновый.

Рисунок 15. Настройка свойств Bouncy в окне PhysicsManager

Управление ракетками при помощи жестов

Игра почти готова. Все объекты находятся на своих местах, и мячик движется, как мы и хотели. Осталось только научиться управлять ракетками. Для этого лучше всего использовать 3D-камеру — новейшее устройство ввода, которое уже широко используют с Microsoft Xbox* и Kinect*, а также встраивают в некоторые новые модели Ultrabook™. 3D-камера не так дорого стоит, так что не упустите возможность ее приобрести. Для программной реализации вам потребуется Intel RealSense SDK. Этот комплект можно загрузить бесплатно. Примеры работы с Unity находятся в Intel RealSense SDK. Посмотрите их после завершения установки.

Рисунок 16. Примеры из Intel RealSense SDK

В Unity 3D предусмотрена поддержка подключаемых модулей сторонних производителей, а также Intel RealSense SDK. Чтобы подключить Intel RealSense SDK, добавьте в проект файлы SDK DLL. В окне Unity нажмите Assets -> Import package -> custom package. . Затем выберите файл RSUnityToolkit.unitypackage, расположенный по адресу C:\Program files (x 86) \Intel\RSSDK\framework\Unity. На экране появится диалоговое окно (см. рис. 17). По умолчанию выбраны все файлы. Чтобы снять выбор, нажмите None. Затем выберите только папку подключаемых модулей. При работе с 64-разрядными системами импортированные файлы DLL также нужно будет заменить вручную. Они находятся в папке C:\Program Files (x86)\Intel\RSSDK\bin\x64.

Рисунок 17. Подключение Intel RealSense SDK к Unity* с помощью функции импорта пакета

После подключения можно перейти к реализации управления ракетками. Создадим еще один файл C#. Для этого нажмите кнопку Create в окне проекта. Назовите файл Paddle. Для управления обеими ракетками достаточно одного общего экземпляра. Это существенный момент, поскольку 3D-камера Intel RealSense не поддерживает подключение к нескольким экземплярам. Поэтому, чтобы подключить новый файл, достаточно перетащить его на объект main camera в окне иерархии.

После этого дважды нажмите файл Paddles.cs. Хотя он подключен к главной камере, для работы нам понадобятся объекты игры, соответствующие ракеткам. В Unity подключение нескольких объектов игры определяется в их свойствах. В C# пришлось бы определять дополнительные свойства с помощью get и set, что в Unity делать совсем не обязательно. Нужно только создать для каждой ракетки переменную типа GameObject с модификатором доступа public, как показано в примере ниже. Теперь, чтобы подключить объекты игры, достаточно перетащить их в свойства созданных ракеток.

Рисунок 18. Объявление объектов игры в файле Paddles.cs с помощью Unity*

Для подключения камеры в Intel RealSense SDK реализован класс PXCMSenseManager. Функция Start будет вызвана только один раз, так что в ней лучше всего выполнять все подготовительные действия. Именно поэтому мы выбрали функцию Start для инициализации класса PXCMSenseManager. Распознавание жестов реализовано в модуле QueryHand, к которому мы обращаемся в программе. Для распознавания лица и голоса требуется отдельный модуль. Объявление экземпляра модуля (переменная _pxcmSenseManager) вынесено за пределы функции Start. См. фрагмент программы

Фрагменткода 3. Подключение 3D-камеры Intel RealSense

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

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

Фрагмент кода 4. Управление ракетками при помощи жестов

Перезапуск игры

Мы создали объекты, написали программу, теперь настало время поиграть. Ракетка начнет перемещаться, если движение руки удалось распознать в пределах 1–5 метров от камеры. Ударившись о ракетку, мячик отскочит и будет двигаться в обратном направлении. Если мячик не коснется ракетки и вылетит за пределы поля, вернуть его уже не удастся. В этом случае логично было бы запускать игру заново.

Для этого достаточно дописать всего несколько строчек кода в наш файл Ball.cs. Добавим проверку наличия мячика на поле в функцию Update. Если мячик пропадет из вида, функция Application.LoadLevel перезапустит игру, как показано в программе ниже.

Фрагменткода 5. Ball.cs: запуск новой игры, когда мячик пропадает из вида

Публикация игры

Мы не зря старались и создали первую версию игры. Поделиться ей с другими очень просто. Нажмите File | Build Settings (Ctrg + Shift + B). На экране появится диалоговое окно сборки. В нем предложен огромный выбор самых разных платформ. Мы будем использовать ОС Windows (архитектура x86_64). Чтобы запустить компилятор и создать файл *.exe для Windows, достаточно нажать Build. После этого, чтобы начать игру, потребуется 3D-камера Intel RealSense с установленным драйвером.

Рисунок 19. Компиляция игры и создание файла *.exe

Теперь ваша очередь

Мы научились создавать простейшую игру с помощью Unity, но есть еще столько способов ее улучшить! Попробуйте доработать ее, добавьте подсчет очков, звуки и спецэффекты. Загрузите видео на YouTube* и напишите мне по электронной почте, чтобы похвастаться своими успехами. Я уверен, у вас получится отличная игра. На этом все, настало время поиграть!

Рисунок 20. Игра

Рисунок 21. Интерфейс игры

Unity и извлечение Assets

Кратко опишу суть дела: есть проект что лежит на GitHub

Он свободен для копирования, (но я так понимаю не ввесь ибо в нём использовались платные Assets из Assets Store, но так же использовались стандартные) И у меня возник вопрос могу ли я «извлечь» и импортировать для своих проектов все что есть в проекте? (Все сугубо в образовательных целях)

Сначала попробовал взять что нужно посредством использования Exporting packages, но это оказалось не очень хорошей идеей, поскольку структура у проекта сложная.

После прочтения всего раздела Asset packages в документации Unity, возник вопрос, могу ли я как то получить хотя бы список того, что было импортировано? Или возможно есть «нормальный» способ скопировать нужные материалы?

Обмовлюсь речь идёт о том, что было скачано из Assets Store (то бишь это по большей части полезные инструменты или материалы в разработке) например как этот

Буду благодарен за советы или ссылки на подобный но решенный вопрос (искал, но найти не удалось). В общем буду рад за любую помощь.

#mopsicus

Визуальное программирование в Unity

Для Unity уже давно существует ассет Playmaker, который позволяет создавать сценарии игры без написания кода. У него есть свои пользователи и их достаточно много. Я никогда не пользовался такими инструментами и думаю, что какой-либо более-менее серьезный проект невозможно сделать без написания кода.

Однако, для каких-то отдельных элементов и частей игры, такой подход вполне может сократить время разработки. Так недавно появился ещё один инструмент для визуального программирования, похожий на Blueprints из движка Unreal — Bolt.

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

  • два типа графов: как в Unreal Blueprints и конечные автоматы как в Playmaker
  • группировка, слои и зум
  • события, макросы, плагины
  • live-редактирование
  • поддержка всех типов
  • встроенная документация

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

А вот что касается использования визуальных средств для создания сложных шейдеров, то тут я «за» 🙂 Таких инструментов много, цены на них приемлемые и результат достойный.

Если хочется начать с чего-нибудь попроще и получить красивый результат, есть ассет Minimalist. Привет, Monument Valley!

Можно применять разные цвета на разные стороны объекта с одним материалом, использовать градиенты, есть встроенный редактор материалов, стоит недорого и есть версия Free.

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

Unity assets – 3D models, animation, particles, materials and other

A general category in which you can download a lot of assets for the popular game engine Unity 5, Unity 2020 (and other versions). As you know, Assets (from the English asset) are ready-made sets of resources in the format of a game engine that you can use in your 3D and 2D games, interactive applications and other projects based on the Unity Game Engine. Typically, these resource collections are packaged in a special .unitypackage file format and can be easily imported into your scenes and projects.

The category is divided into thematic sections, where you can find and download the following resources:

  • 3D-models for Unity: characters, animals, technology, weapons, the details of the environment, ready levels, structures, plants (grass, bushes, trees), props (objects for filling locations), miscellaneous.
  • Animations: ready MoCap, Biped and other animations for characters of people, animals, monsters, weapons, equipment and other objects.
  • Audio: music, audio effects, ambient, sound backgrounds, ready to voice for characters, monsters, weapons, technology, locations.
  • Projects: ready-made games, complex systems of characters, weapons, equipment, locations and scripts, game prefabs, templates, training materials, miscellaneous.
  • Additions for the editor: working with sprites, landscape, animations and sounds, GUI and effects, visual scripting, drawing, modeling, etc.
  • Particle systems for games: fire, shots, explosions, magic effects, smoke, fog, water, rain, snow, weather, different.
  • Ready scripts (programs): artificial intelligence (AI), script animations, input-output interface, GUI, physics, network code, object behavior, effects, miscellaneous.
  • Shaders: DirectX 11, surface and special, substances, camera effects, post-processing, shaders for mobile devices.
  • Textures and materials in the Unity engine format: for characters, levels, technology, weapons, buildings and objects, terrain (landscape) effects, environments, GUI and others.

To each Asset, if possible, full information about its version, composition and purpose, the version of the engine on which it works, the author, the site, the file size and so on.

Unity engine for today is rightfully considered the most popular both in the gaming industry, and in the development of three-dimensional interactive applications, virtual reality projects, architectural visualizations in real time. Having a low entry threshold, the widest opportunities in the free version, a large number of translated into Russian language reference and training materials, a huge community around the world, Unity attracts millions of beginners and professional developers of game projects and applications. Separately it is worth noting the expanded multiplatform capabilities and a large number of developed applications and games for mobile devices. Among the latest projects AAA-class, created on this engine, you can select the game Escape from Tarkov — a realistic storyline multiplayer online role-playing shooter. Also on Unity were created such famous games as Affected Zone, Demones, Naval Action, Warside, Battlestar galactica online, Astro lords, Drakensang online, Shards of War and many others.

Unity выпустила Visual Search, инструмент для управления 3D-ассетами с помощью ИИ

В данном разделе будут объяснены основные принципы работы с ассетами в Unity. Например, будет показано, как использовать 3D модель.

Создание ассета

Используйте любой поддерживаемый пакет программ для 3D моделирования, чтобы создать черновую версию своего ассета. В данном примере будет использоваться Maya. Подготовьте и сохраните ассет. Список приложений по 3D моделированию, которые поддерживает Unity можно посмотреть здесь.

Импорт

При первом сохранении своего ассета, его стоит сохранить в папку Assets , которая находится в папке вашего проекта. Когда вы откроете проект в Unity, сохраненный ассет будет обнаружен и импортирован. Если вы посмотрите в окно Project View , то обнаружите, что ассет расположен именно там, где вы его сохранили. Пожалуйста, обратите внимание на то, что Unity использует FBX-экспортер, встроенный в вашу программу 3D моделирования, чтобы конвертировать модели в формат FBX. Поэтому необходимо, чтобы FBX-экспортер используемой программы 3D моделирования был доступен для Unity. В противном случае, можно сразу экспортировать модели в FBX формат, и сохранять в папке проекта FBX файлы. Список приложений по 3D моделированию, которые поддерживает Unity можно посмотреть здесь.

Настройки импорта

Если выбрать ассет в окне Project View , то на панели Inspector отобразятся настройки импорта для данного ассета. Доступные для настройки опции импорта изменяются в зависимости от типа выбранного ассета.

Добавление ассета в сцену

Просто перетащите мышкой меш из окна Project View в окно Hierarchy или Scene View для того, чтобы добавить его в cцену. При перетаскивании меша в сцену, вы создаете игровой объект ( GameObject ), у которого есть компонент Mesh Renderer . Если же вы работаете с текстурой или звуковым файлом, вам придется добавлять их в уже созданный GameObject в сцене или в окне Project.

Группировка различных ассетов вместе

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

  • Текстура применяется в материале ( Material )
  • Материалы используются в GameObject’ах (в компоненте Mesh Renderer)
  • Анимации используются для игровых объектов (в компоненте Animation )
  • Звуковые файлы используются с игровыми объектами (компонент Audio Source )

Создание префабов

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

По умолчанию, изменения сделанные в префабе, автоматически применяются ко всем его экземплярам, поэтому использование префабов является хорошим способом поддерживать однородность набора объектов. Тем не менее, вы также можете отключить связь между экземпляром и префабом, если вам нужно сделать специальные вариации оригинала. Вы также можете изменить экземпляр, и сохранить изменения в префаб (меню: GameObject > Apply Changes to Prefab ).

Чтобы создать префаб из GameObject в вашей сцене, просто перетащите GameObject из сцены в окно Project. После этого имя GameObject’а выделится, чтобы вы могли переименовать его по своему усмотрению.

Для дополнительной информации, смотрите страницу Префабы в данном руководстве.

Обновление ассетов

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

Мастер Йода рекомендует:  Все о разработке игр для программистов
Добавить комментарий