Unity чем открыть скрипт
Рисование, Дизайн и Разработка игр
Главная » Unity3D: Основы использования скриптов для новичков: Игровой объект: скрипты и компоненты
Unity3D: Основы использования скриптов для новичков: Игровой объект: скрипты и компоненты
Настройка Unity для использования Visual Studio
По умолчанию в Unity уже должно быть настроено использование Visual Studio или Visual Studio для Mac в качестве редактора скриптов. Вы можете подтвердить это или изменить внешний редактор скриптов на определенную версию Visual Studio из Unity Editor.
В редакторе Unity откройте меню Правка > Настройки.
Выберите вкладку Внешние инструменты слева.
Доступ к документации по Unity
Доступ к документации по созданию скриптов Unity можно быстро получать из Visual Studio. Если набор средств Visual Studio для Unity не находит документацию по API в локальном режиме, он попытается найти ее через Интернет.
- В Visual Studio выделите API Unity, с которым хотите ознакомиться (или наведите на него курсор), а затем нажмите клавиши CTRL+ALT+M, CTRL+H.
- Кроме того, вместо настраиваемое сочетание клавиш можно использовать Справочное меню Help > Unity API .
- в Visual Studio для Mac выделите или поместите курсор на API Unity, который вы хотите изучить, а затем нажмите клавишу Cmd + .
- Кроме того, вместо настраиваемое сочетание клавиш можно использовать Справочное меню Help > Unity API .
Поместите курсор на новую строку внутри тела класса, производного от MonoBehaviour .
После ввода букв "ontri" отображается список предложений IntelliSense.
Выбранный элемент в списке можно изменить тремя способами:
с помощью клавиш со стрелками ВВЕРХ и ВНИЗ;
щелкая нужный элемент;
продолжив ввод имени нужного элемента.
при нажатии клавиши TAB;
при нажатии клавиши ВВОД;
при двойном щелчке выбранного элемента.
Debug in the Unity Player
To compile a Unity Player for you to debug:
- Go to File >Build Settings.
- Enable the Development Build A development build includes debug symbols and enables the Profiler. More info
See in Glossary and Script Debugging options before you build the Player. You could also enable the Wait For Managed Debugger option to make the Player wait for a debugger to be attached before the Player executes any script code. - Select Build And Run.
Остальное позже
Мы рассмотрим позднее о том, как правильно вызывать функции при необходимости. Пока, все, что вам нужно понять — это то, что функция является последовательностью шагов, которые выполняют конкретную задачу, и причиной создания функции является определенная задача, которую нужно будет выполнять много раз. Поэтому имеет смысл поместить последовательность шагов в свой собственный раздел кода, дать ему имя, и тогда мы сможем вызвать их, если нам нужно будет выполнить эту задачу.
Структура файла скрипта
После двойного щелчка на скрипте в Unity, он будет открыт в текстовом редакторе. По умолчанию Unity будет использовать MonoDevelop, но вы можете выбрать любой редактор из панели External Tools в настройках Unity.
Содержимое файла будет выглядеть примерно так:
Скрипт взаимодействует с внутренними механизмами Unity за счет создания класса, наследованного от встроенного класса, называемого MonoBehaviour . Вы можете думать о классе как о своего рода плане для создания нового типа компонента, который может быть прикреплен к игровому объекту. Каждый раз, когда вы присоединяете скриптовый компонент к игровому объекту, создается новый экземпляр объекта, определенный планом. Имя класса берется из имени, которое вы указали при создании файла. Имя класса и имя файла должны быть одинаковыми, для того, чтобы скриптовый компонент мог быть присоединен к игровому объекту.
Основные вещи, достойные внимания, это две функции, определенные внутри класса. Функция Update - это место для размещения кода, который будет обрабатывать обновление кадра для игрового объекта. Это может быть движение, срабатывание действий и ответная реакция на ввод пользователя, в основном всё, что должно быть обработано с течением времени во игровом процессе. Чтобы позволить функции Update выполнять свою работу, часто бывает полезно инициализировать переменные, считать свойства и осуществить связь с другими игровыми объектами до того, как будут совершены какие-либо действия. Функция Start будет вызвана Unity до начала игрового процесса (т.е. до первого вызова функции Update), и это идеальное место для выполнения инициализации.
Заметка для опытных программистов: вы можете быть удивлены, что инициализация объекта выполняется не в функции-конструкторе. Это потому, что создание объектов обрабатывается редактором и происходит не в начале игрового процесса, как вы могли бы ожидать. Если вы попытаетесь определить конструктор для скриптового компонента, он будет мешать нормальной работе Unity и может вызвать серьезные проблемы с проектом.
Здесь функции Start и Update имеют такое же значение, но класс не объявлен явно. Предполагается, что скрипт сам по себе определяет класс; он будет неявно производным от MonoBehaviour и получит своё имя от имени файла скриптового ассета.
Attach Visual Studio to the Unity Editor
To attach the Unity Editor to your Visual Studio script, open Visual Studio, go to Debug > Attach Unity Debugger and select the instance of the Unity Editor you would like to debug.
In the following example image, there is one instance of Unity running in the Editor and one instance of Unity running as an Android Player
Visual Studio lists the current instances of Unity that are available to debug.
Отладка библиотеки DLL в проекте Unity
Многие разработчики Unity создают компоненты кода в виде внешних библиотек DLL, чтобы разрабатываемые ими функции можно было легко совместно использовать с другими проектами. Набор средств Visual Studio для Unity упрощает отладку кода в этих библиотеках DLL без создания проблем для другого кода в проекте Unity.
В настоящее время набор средств Visual Studio для Unity поддерживает только управляемые библиотеки DLL. Он не поддерживает отладку библиотек DLL машинного кода, например библиотек, созданных на языке C++.
Обратите внимание, что описанный здесь сценарий предполагает, что у вас есть исходный код, то есть вы разрабатываете или повторно используете свой собственный код, или у вас есть исходный код для библиотеки стороннего разработчика и вы планируете его развернуть в проекте Unity как библиотеку DLL. Данный сценарий не описывает отладку библиотеки DLL, для которой у вас нет исходного кода.
Отладка проекта с управляемой библиотекой DLL, используемой в проекте Unity
Добавьте существующий проект библиотеки DLL в решение Visual Studio, которое создается набором средств Visual Studio для Unity. В ряде случаев вы можете создать новый проект с управляемой библиотекой DLL, который будет содержать компоненты кода проекта Unity. В этом сценарии в решение Visual Studio можно добавить новый проект с управляемой библиотекой DLL.
существующий элемент"." />
В любом случае набор средств Visual Studio для Unity сохраняет ссылку на проект, даже если он должен повторно создать файлы проекта и решения, поэтому эти действия нужно будет выполнить только один раз.
Создайте ссылку на нужный профиль платформы Unity в проекте DLL. В Visual Studio в свойствах проекта DLL для свойства Целевая платформа укажите версию платформы Unity, которую вы используете. Это библиотека базового класса Unity, соответствующая уровню совместимости API, на который ориентирован ваш проект, например библиотека базовых классов Unity full, micro или web. Благодаря этому ваша библиотека DLL не будет вызывать методы платформы, существующие на других платформах или уровнях совместимости, но которые могут отсутствовать в версии платформы Unity, которую вы используете.
Скопируйте библиотеку DLL в папку Asset (ресурсы) своего проекта Unity. В Unity ресурсы представляют собой файлы, которые упаковываются и развертываются вместе с вашим приложением Unity, чтобы их можно было загружать во время выполнения. Так как библиотеки DLL связываются во время выполнения, их необходимо развертывать как ресурсы. Для развертывания в виде ресурса редактору Unity требуется, чтобы библиотеки DLL были помещены в папку Assets вашего проекта Unity. Предусмотрены два способа выполнения этой задачи.
Измените параметры сборки проекта DLL, чтобы добавить выполняемую после сборки задачу, которая скопирует выходные файлы DLL и PDB из выходной папки в папку Активы проекта Unity.
Измените параметры сборки проекта DLL, чтобы сделать выходной папкой папку Assets проекта Unity. Теперь файлы DLL и PDB будут сразу помещаться в папку Assets.
PDB-файлы необходимы для отладки, так как они содержат символы отладки библиотеки DLL и сопоставляют код DLL с формой его исходного кода. Если будет применяться устаревшая среда выполнения, Инструменты Visual Studio для Unity будут использовать сведения из файлов DLL и PDB для создания файла DLL.MDB. Это формат отладочных символов, применяемый устаревшим модулем обработки скрипов Unity. Если будет применяться новая среда выполнения и формат Portable-PDB, Инструменты Visual Studio для Unity не будут пытаться преобразовывать символы, так как новая среда выполнения Unity может самостоятельно обрабатывать файлы Portable-PDB.
См. подробнее сведения о создании PDB-файлов. Если будет применяться новая среда выполнения, убедитесь, что для параметра "Отладочная информация" задано значение "Переносимый" для корректного создания файла Portable PDB. Если будет применяться устаревшая среда выполнения, воспользуйтесь значением "Полный".
Выполните отладку своего кода. Теперь вы можете отлаживать свой исходный код DLL вместе с исходным кодом проекта Unity и использовать все доступные функции, например точки останова и пошаговое выполнение кода.
Управление игровым объектом
Как было сказано ранее, скрипт определяет только план компонента и, таким образом, никакой его код не будет активирован до тех пор, пока экземпляр скрипта не будет присоединен к игровому объекту. Вы можете прикрепить скрипт перетаскиванием ассета скрипта на игровой объект в панели Hierarchy или через окно Inspector выбранного игрового объекта. Имеется также подменю Scripts в меню Component, которое содержит все скрипты, доступные в проекте, включая те, которые вы создали сами. Экземпляр скрипта выглядит так же, как и другие компоненты в окне Inspector:-
После присоединения скрипт начнет работать, когда вы нажмете Play и запустите игру. Вы можете проверить это добавив следующий код в функцию Start:-
- Visual Studio (with the Visual Studio Tools for Unity plug-in)
- Visual Studio for Mac
- Jetbrains Rider
- Visual Studio Code (experimental)
Although these code editors vary slightly in the debugging features they support, they all provide basic functionality such as break points, single stepping, and variable inspection. You can attach these code editors to the Unity Editor or Unity Player to debug your code.
Verify the network connection to the Unity instance
The code editor uses the same mechanism to locate a Unity instance to debug as the Unity Profiler A window that helps you to optimize your game. It shows how much time is spent in the various areas of your game. For example, it can report the percentage of time spent rendering, animating, or in your game logic. More info
See in Glossary . If the code editor can’t find the Unity instance you expect, try to attach the Unity Profiler to that instance. If the Unity Profiler cannot find the Unity instance either, there might be a firewall on the machine you are running the code editor or Unity instance on. If a firewall is in place, see Check the firewall settings.
Сочетания клавиш
Для быстрого доступа средств Unity к функциям Visual Studio можно использовать соответствующие сочетания клавиш. Ниже приведен список таких сочетаний клавиш.
Команда | Сочетание клавиш | Имя контекстной команды |
---|---|---|
Открыть мастер MonoBehavior | CTRL+SHIFT+M | EditorContextMenus.CodeWindow.ImplementMonoBehaviours |
Открыть обозреватель проектов Unity | ALT+SHIFT+E | View.UnityProjectExplorer |
Доступ к документации по Unity | CTRL+ALT+M, CTRL+H | Help.UnityAPIReference |
Присоединиться к отладчику Unity (проигрыватель или редактор) | значение по умолчанию отсутствует | Debug.AttachUnityDebugger |
Если вас не устраивает сочетание клавиш по умолчанию, его можно изменить. Чтобы узнать, как это сделать, см. статью Определение и настройка сочетаний клавиш в Visual Studio.
Команда | Сочетание клавиш | Имя контекстной команды |
---|---|---|
Открыть мастер MonoBehavior | Команда cmd + SHIFT + М | EditorContextMenus.CodeWindow.ImplementMonoBehaviours |
Доступ к документации по Unity | Cmd + ' | Help.UnityAPIReference |
Если вас не устраивает сочетание клавиш по умолчанию, его можно изменить. Сведения о том, как изменить его, см. в разделе Настройка интегрированной среды разработки.
Сведения об использовании Visual Studio Code с Unity см. в документации по разработке в Unity с использованием VS Code.
Создание скриптов
Новый скрипт будет создан в папке, которую вы выбрали в панели Project. Имя нового скрипта будет выделено, предлагая вам ввести новое имя.
Лучше ввести новое имя скрипта сразу после создания чем изменять его потом. Имя, которое вы введете будет использовано, чтобы создать начальный текст в скрипте, как описано ниже.
Добавление версии Visual Studio, которая отсутствует в списке
Можно выбрать другие версии Visual Studio, которые не указаны в списке и установлены в пользовательском каталоге.
- В раскрывающемся списке выберите Обзор… .
- Перейдите в каталог Common7/IDE, находящийся в каталоге установки Visual Studio, и выберите файл devenv.exe. Затем щелкните Open (Открыть).
- В Unity 2019 и более ранних версиях убедитесь, что установлен флажок Присоединение к редактору.
- Чтобы завершить процесс настройки, закройте диалоговое окно Параметры.
В редакторе Unity откройте меню Unity > Настройки.
Выберите вкладку Внешние инструменты слева.
В раскрывающемся списке Внешний редактор скриптов можно выбрать различные установки Visual Studio для Mac.
Чтобы завершить процесс настройки, закройте диалоговое окно Параметры.
Переменные — это просто заменители
Видите эти имена в левой колонке: Sensitivity X, Sensitivity Y и т.д.? Это имена переменных в скрипте. Видите цифры в правой колонке? Это информация, которую переменные (почтовые ящики) содержат. Ну и как же это все работает?
Давайте представим, что у вас есть переменная (почтовый ящик) с именем myNumber . В myNumber содержится число 9 (в почтовом ящике — число 9). Так вот, если бы вы увидели нижеследующее, то это, как правило, не имело бы никакого логического смысла, если только вы не проходили алгебру в средней школе:
Вы не можете добавлять слова и числа и получать ответ. Но вы можете это сделать, когда слово является переменной в скрипте, так как все то, что находится в переменной , заменяется вместо слова (имени переменной ). Таким образом, в нашем маленьком математическом уравнении, 9 заменяется вместо слова там, где отображен myNumber , следовательно:
Дело в том, что когда вы пишите скрипты, то переменная — это просто метка-заполнитель, или заменитель, для фактической информации, которую вы хотите использовать.
JetBrains Rider
You can use the default installation of JetBrains Rider to debug code in Unity on Windows or Mac. Visit the JetBrains website to install it.
Troubleshoot the debugger
Most problems with the debugger occur because the code editor is unable to locate the Unity Editor or the Unity Player. This means that the Unity Editor or Player can’t attach the debugger properly. Because the debugger uses a TCP connection to the Editor or Player, connection issues are often caused by the network. Below are a few steps you can take to troubleshoot basic connection issues.
Проверка обновлений
Рекомендуется устанавливать обновления Visual Studio и Visual Studio для Mac, чтобы получать последние исправления ошибок, функции и поддержку Unity. Для этого не требуется обновлять версии Unity.
Откройте меню Справка > Проверка обновлений.
Функции в скриптах
Функции — это то место, где находится действие, принимаются решения, выполняются задачи. Это рабочая часть скрипта. В моем первоначальном примере разговора с другом и ответа на телефонный звонок, «разговор с другом» был функцией , которую вы «выполняли», когда должны были сменить и выполнить другую функцию «разговор по телефону».
Переменная похожа на почтовый ящик
Что обычно находится в почтовом ящике, кроме воздуха? Ну, как правило — ничего, но иногда там что-нибудь есть. Иногда это деньги (зарплата), счета, фотографии от «любимой» тетушки Мейбл, паук и т.д. Вся суть в том, что содержимое почтового ящика может меняться. Исходя из этого, давайте назовем каждый почтовый ящик переменной , поскольку то, что в нем находится, может изменяться.
Отладка в редакторе Unity
Начать отладку
- Visual Studio можно подключить к Unity, нажав кнопку Воспроизвести, отмеченную меткой Подключить к Unity, или использовав клавишу F5.
- Подключите Visual Studio к Unity, нажав кнопку Воспроизвести, клавиши COMMAND+ВВОД или клавишу F5.
- Переключитесь в Unity и нажмите кнопку Воспроизвести, чтобы запустить игру в редакторе.
- Когда игра запущена в редакторе Unity при подключении к Visual Studio, все проходимые точки останова будут приостанавливать выполнение игры и выводить соответствующую строку кода в Visual Studio.
Остановка отладки
В Visual Studio нажмите кнопку Стоп или используйте сочетание клавиш SHIFT + F5.
Подключение к Unity и воспроизведение
Для дополнительного удобства кнопку Подключить к Unity можно заменить на режим Подключить к Unity и воспроизвести.
Щелкните небольшую стрелку вниз рядом с кнопкой Подключить к Unity.
В раскрывшемся меню выберите Подключить к Unity и воспроизвести.
Затем на кнопке "Воспроизведение" появляется метка Подключение к Unity и воспроизведение. Нажатие этой кнопки или использование клавиши F5 приведет к автоматическому переключению на редактор Unity и запуску игры в редакторе, в дополнение к подключению отладчика Visual Studio.
Начать отладку и воспроизведение в редакторе Unity можно за один шаг, непосредственно из Visual Studio для Mac, выбрав конфигурацию Подключение к Unity и воспроизведение.
Если отладка была запущена с помощью команды присоединить к Unity и воспроизвести конфигурацию, то кнопка " Закрыть " также останавливает редактор Unity.
Вывод
Компоненты и скрипты: немного магии
Работая в Unity, вы занимаете две должности:
Выступая в роли создателя игры, вы можете выбирать игровой объект и просматривать свойства каждого компонента, прикрепленного к этому игровому объекту.
Когда вы выступаете в качестве программиста, то определение меняется:
- Скрипт написан для того, чтобы дать игровому объекту способность делать что-нибудь.
- Когда скрипт будет сохранен, имя его файла будет таким же, как и имя класса — содержимого переменных и функций.
- Этот класс (файл скрипта) сохраняется в папке «Project», находясь там, в спящем состоянии и без действий.
- Можете сменить роль программиста снова.
Магия возникает, когда вы становитесь создателем игры снова и прикрепляете класс (файл скрипта) к игровому объекту.
- Взмах волшебной палочки — бах! — класс (файл скрипта) теперь называется компонентом, а общедоступные переменные класса (файла скрипта) — свойствами, которые вы видите в окне «Inspector».
Prevent the device from locking
Disable any screen locks on the device you are using to debug your application. Screen locks cause the debugger to disconnect, and prevent it from re-connecting. Don’t lock the screen during managed code debugging. If the screen locks, restart the application on the device so the debugger can connect again.
В этом разделе мы рассмотрим, как использовать возможности интеграции и повышения производительности набора средств Visual Studio для Unity, а также как использовать отладчик Visual Studio для разработки Unity.
Attach your code editor to the Unity Editor
The way to attach your code editor to the Unity Editor depends on what code editor you use, and is often a different option from your code editor’s normal debugging process. Some code editors allow you to select an instance of Unity to debug. For instructions specific to your code editor, see Code editor external documentation. To see how you can do this in Visual Studio, see Attach Visual Studio to the Unity Editor.
When you have attached the code editor to the Unity Editor and you are ready to begin debugging, return to the Unity Editor and enter Play Mode.
Открытие скриптов Unity в Visual Studio
после того как Visual Studio установлен в качестве внешнего редактора для unity, двойной щелчок скрипта в редакторе unity автоматически запустится или переключится на Visual Studio и откроет выбранный скрипт.
Следующий шаг
Теперь, когда вы понимаете фундаментальные основы, используемые для написания скриптов, предыдущие уроки должны будут позволить приступить к более детальному изучению скриптов в Unity.
С постижением вами понятий переменных, функций и синтаксиса точки, мы теперь можем продолжить изучение некоторых тонкостей создания скриптов.
Поведение игровых объектов контролируется с помощью компонентов ( Components ), которые присоединяются к ним. Несмотря на то, что встроенные компоненты Unity могут быть очень разносторонними, вскоре вы обнаружите, что вам нужно выйти за пределы их возможностей, чтобы реализовать ваши собственные особенности геймплея. Unity позволяет вам создавать свои компоненты, используя скрипты . Они позволяют активировать игровые события, изменять параметры компонентов, и отвечать на ввод пользователя каким вам угодно способом.
Unity изначально поддерживает три языка программирования:
Изучение искусства программирования и использования этих языкам выходит за рамки данного введения. Однако есть множество книг, обучающих материалов и ресурсов для изучения программирования в среде Unity. Посетите Обучающий раздел на нашем сайте для получения подробной информации.
Синтаксис точки в скриптах: взаимодействие
В нашем скрипте есть переменные, которые содержат информацию или данные, и в скрипте есть функции, которые позволяют выполнять задачи. Теперь я хочу представить концепцию взаимного обмена информацией с другими компонентами и игровыми объектами. Я немного коснусь здесь этой темы, поскольку обмен информацией между компонентами является важной частью работы скриптов. Это то, что делает возможным взаимодействие.
Visual Studio for Mac
The Unity Editor installer includes an option to install Visual Studio for Mac. This is the recommended way to set up Visual Studio for Mac for debugging with Unity.
If Visual Studio for Mac is already installed on your computer, open it and go to Visual Studio > Extensions > Install from file… to locate and install the Visual Studio Tools for Unity plug-in.
Check the firewall settings
The Unity instance communicates with the code editor using a TCP connection. On most Unity platforms, this TCP connection occurs on an arbitrarily chosen port. Normally, you shouldn’t need to know this port, as the code editor should detect it automatically. If that doesn’t work, use a network analysis tool to determine which ports might be blocked either on the machine where you are running the code editor, or the machine or device where you are running the Unity instance. When you find the ports, make sure that your firewall allows access to the port on both the machine running the code editor, and the machine running the Unity instance.
Вполне логично, использовать функции
Игровые объекты могут иметь множество типов входящей информации, таких как определение при их столкновении с чем-нибудь, или когда что-нибудь сталкивается с ними, или игрок может нажать определенные кнопки, чтобы управлять геймплеем. Эти входящие данные вызовут определенные функции , которые выполнят определенные задачи, созданные вами в скрипте.
Такие функции создаются, потому что они являются последовательными шагами, которые выполняются снова и снова, много раз. Таким образом, вместо того, чтобы опять печатать одни и те же последовательности шагов снова и снова, мы помещаем эти шаги в контейнер кода и даем ему имя. Когда мы хотим использовать этот контейнер кода в скрипте, то просто пишем имя функции в срипте, которое вызывает функцию для выполнения действий.
Android
To debug a Unity Player running on an Android device, connect to the device using USB or TCP. For example, to connect to an Android device in Visual Studio, select Debug > Attach Unity Debugger option. A list of devices running a Player instance appears.
In this example, the android device is connected using USB and Wi-Fi on the same network as the workstation running the Unity Editor and Visual Studio.
Android on Chrome OS
Unity can’t automatically discover Chrome OS devices. To initiate a connection, connect to the device through Android Debug Bridge (adb). For more information about how to use adb An Android Debug Bridge (ADB). You can use an ADB to deploy an Android package (APK) manually after building. More info
See in Glossary , see the Android Studio User Guide.
To debug a Unity Player running on an iOS device, connect to the device using TCP. For example, to connect to an iOS device in Visual Studio for Mac, select Debug > Attach Unity Debugger. A list of devices running a Player instance appears.
Ensure that the device only has one active network interface (Wi-Fi recommended, turn off cellular data) and that there is no firewall between the IDE and the device blocking the TCP port (port number 56000 in the above screenshot).
Important: iOS Apple’s mobile operating system. More info
See in Glossary does not support debugging over USB.
Имя переменной
Если я, пользуясь фотографией сельского почтового ящика, попросил бы вас посмотреть, что находится в почтовом ящике, первое, что вы бы сказали — «в каком?». Если бы я сказал, что в ящике Смита или в коричневом почтовом ящике, или в округлом, то вы бы знали наверняка какой почтовый ящик открыть, чтобы взять то, что находится внутри.
В скриптах нам также необходимо называть переменные уникальными именами, так чтобы я мог бы спросить вас о том, что находится в переменной с именем myNumber , или какое «клевое» имя вы бы использовали?
Для тех из вас, кто наиболее любопытен: переменные — это имена, которые мы составляем для адресов памяти в компьютере. Когда мы используем переменные в скрипте, компьютер знает точно, куда направляться в своей памяти, чтобы получить или сохранить информацию, которая нам необходима.
Breakpoints
Breakpoints allow you to specify points in your code where you want to pause its execution. In your external code editor, you can set a breakpoint on a line of code where you want the debugger to stop. While the code editor is at a breakpoint, you can view the contents of variables step by step.
If you have attached your code editor to the Unity Editor (see Attach your code editor to the Unity Editor), the Unity Editor becomes unresponsive until you choose the continue option in your code editor, or stop debugging mode.
To see how you can set breakpoints in Visual Studio see Set breakpoints in Visual Studio.
Visual Studio Code
To debug in Unity using Visual Studio Code, you need to install an extension. See Visual Studio Code’s documentation to configure Visual Studio Code as the code editor for your Unity project. Follow Visual Studio Code’s instructions specific to the Debugger for Unity extension to install it. Unity’s support for Visual Studio Code is experimental as Unity does not officially support the Debugger for Unity extension.
Установка Visual Studio и Unity
-
или запустите его (если он был ранее установлен).
- Щелкните Изменить (если установка уже выполнена) или Установить (для новой установки) для требуемой версии Visual Studio.
- На вкладке Рабочие нагрузки выберите рабочую нагрузку Разработка игр с помощью Unity.
- Если платформа Unity еще не установлена, установите флажок "Unity Hub" в разделе "Дополнительно" установщика.
- Щелкните Изменить или Установить, чтобы завершить установку.
Когда Visual Studio завершит процесс установки, можно приступить к настройке Unity.
Если вы уже установили Visual Studio 2022, можно снять флажок "Microsoft Visual Studio Community 2019".
Программа Unity Hub продолжит установку Unity в фоновом режиме. По завершении можно создать проект, выбрав вкладку Проекты и нажав кнопку Создать.
Проекты создаются с помощью редактора Unity, а не Visual Studio.
Это руководства по установке предназначено для Visual Studio для Mac. Если вы работаете с Visual Studio Code, см. документацию по разработке Unity с использованием VS Code.
Инструменты Visual Studio для Mac для Unity включены в установку Visual Studio для Mac, поэтому отдельные шаги по установке выполнять не требуется. Проверить это можно в меню Visual Studio для Mac > Расширения > Разработка игр. Инструменты Visual Studio для Mac для Unity должны быть включены.
Остальное позже
Это как раз те самые основы о переменных, которые являются просто удобным способом для хранения любой информации, которая вам понадобится в скрипте. Также, переменные могут содержать различные типы информации, такие как слова, или даже целые игровые объекты. Существуют более тонкие детали, касающиеся синтаксиса переменных и того, как назначать и получать значение переменной , что мы и изучим в дальнейшем.
Ссылка на описание игрового объекта в руководстве по Unity
Ensure the device only has one active network interface
Many devices have multiple network interfaces. For example, a mobile phone might have both an active cellular connection and an active Wi-Fi connection. To properly connect the debugger to the Unity instance using TCP, the IDE needs to make a network connection to the correct interface on the device. If you plan to debug over Wi-Fi, for example, make sure you put the device in airplane mode to disable all other interfaces, then enable Wi-Fi.
You can determine which IP address the Unity Player tells the IDE to use by looking in the Player Log The .log file created by a Standalone Player that contains a record of events, such as script execution times, the compiler version, and AssetImport time. Log files can help diagnose problems. More info
See in Glossary . Look for a part of the log like this:
Multi-casting "[IP] 10.0.1.152 [Port] 55000 [Flags] 3 [Guid] 2575380029 [EditorId] 4264788666 [Version] 1048832 [Id] iPhonePlayer(Example-iPhone):56000 [Debug] 1 [PackageName] iPhonePlayer" to [225.0.0.222:54997].
This message indicates the IDE will try to use the IP address 10.0.1.152 and port 56000 to connect to the device. This IP address and port must be reachable from the computer running the IDE.
Мастер создания скриптов Unity MonoBehavior
Мастер MonoBehavior можно использовать для просмотра списка всех методов API Unity и быстрого выполнения пустого определения. Эта функция, особенно со включенным параметром Создать комментарии для метода, полезна при изучении того, что доступно в Unity API.
Создание определений пустых методов MonoBehavior с помощью мастера MonoBehavior.
В Visual Studio поместите курсор туда, где необходимо вставить методы, а затем нажмите клавиши CTRL+SHIFT+M для запуска мастера MonoBehavior. в Visual Studio для Mac нажмите Cmd + Shift + M.
В окне Создание методов скрипта установите флажок рядом с именем каждого метода, который нужно добавить.
Чтобы выбрать необходимую версию, используйте раскрывающийся список Версия платформы.
Методы по умолчанию вставляются в позицию курсора. В качестве альтернативы можно вставить их после любого метода, который уже реализован в классе. Для этого измените значение раскрывающегося списка точка вставки на нужное расположение.
Если вы хотите, чтобы мастер создавал комментарии для выбранных методов, установите флажок Создать комментарии к методу. Эти комментарии позволяют лучше понять, когда вызывается метод и каковы его общие функции.
Debug in the Unity Editor
To debug in the Editor, you need to set the Editor’s Code Optimization mode to Debug Mode, then you can attach a code editor with a debugging feature.
To change the Code Optimization mode, select the Debug Button in the bottom right of the Unity Editor Status Bar.
The Debug Button in the bottom right of the Unity Editor Status Bar
Unity’s Code Optimization setting has two modes:
When you click the Debug button in the status bar, a small pop-up window opens which contains a button you can use to switch modes. The window also displays information about the current mode, and describes what happens if you switch modes.
The Debug Mode popup, which shows the current mode, allows you to switch modes, and describes what happens if you switch mode.
To change which mode the Unity Editor starts up in, go to Edit (macOS: Unity) > Preferences > General > Code Optimization On Startup.
In Preferences, you can change the Code Optimization mode that Unity starts in.
To control these settings using a script, use the following API:
You can also override the mode that the Editor starts up in, or turn off the debugger listen socket. To do this, use the following command line arguments when you launch the Editor:
- -releaseCodeOptimization . Starts the Editor in Release code optimization mode.
- -debugCodeOptimization . Starts the Editor in Debug code optimization mode.
- -disableManagedDebugger . Starts the Editor with the debugger listen socket disabled.
Это адрес?
Да, все это так. Синтаксис точки — просто способ, которым вы указываете какой-нибудь игровой объект или какой-нибудь компонент, переменную (свойство) или функцию в любом игровом объекте в своей игре.
Visual Studio (Windows)
If Visual Studio is already installed on your computer, open it and go to Tools > Get Tools and Features… to locate and install the Visual Studio Tools for Unity plug-in.
Класс: приблизительное объяснение
Классы играют важную роль в Unity. Мы изучим, что такое класс и каким образом другие слова, которые также изучим, имеют отношение к классам.
Что же такое класс?
Простой ответ — это определение чего-либо, так же, как в словаре.
Например, поищите в словаре слова «собака» или «утка» и прочитайте, что они означают. Есть ли определение «собаки» в словаре? Конечно, нет, но приводится некоторая информация о том, как выглядит собака и о ее некоторых повадках.
Ответ от Unity3D — определение это то, что:
- Определяет переменные , которые будут использованы для хранения информации (данных) и
- Определяет функции , которые используются для выполнения действий с использованием данных, содержащихся в переменных .
Другими словами, класс определяет:
- Несколько слов — имена переменных , и
- Некоторые другие элементы, которые класс может сделать — функции .
Класс, компонент и скрипт
Прежде всего, вы должны знать, что означают некоторые слова. Затем вам нужно знать, как использовать эти слова. Вспомните то время, когда в начальной школе изучали английский. Скучные уроки, но необходимые для того, чтобы уметь хорошо писать. Вы, вероятно, уже знаете некоторые эти слова из повседневного обихода, которые не имеют ничего общего с программированием, но достаточно схожи с тем, чтобы быть легко применяемыми при написании скриптов.
В этой главе я приведу некоторые основные объяснения о том, что такое скрипт и о двух элементах, которые являются его частью: переменные и функции. В основном я буду использовать повседневные примеры, чтобы попытаться объяснить понятия и показать как, на самом деле, они просты. В последующих главах мы углубимся в детали того, как в действительности использовать эти простые понятия.
Debug Android and iOS devices with Visual Studio
Обозреватель проектов Unity
Обозреватель проектов Unity показывает все файлы и каталоги ваших проектов Unity в том же виде, что и редактор Unity. Это отличается от навигации по сценариям Unity с помощью обычного обозревателя решений Visual Studio, который организует их в проекты и решения, созданные Visual Studio.
- В главном меню Visual Studio выберите Представление > Обозреватель проектов Unity. Сочетание клавиш: ALT+SHIFT+E
- в Visual Studio для Mac Панель решения автоматически ведет себя следующим образом при открытии проекта Unity.
Отладка сборок проигрывателя Unity
Сборки приложений Unity можно отлаживать с помощью Visual Studio.
Включение отладки скриптов в проигрывателе Unity
Чтобы открыть параметры сборки в Unity, выберите Файл > Параметры сборки.
В окне параметров сборки установите флажки Сборка разработки и Отладка скриптов.
Выбор экземпляр Unity для присоединения отладчика
В главном меню Visual Studio выберите Отладка > Присоединить отладчик Unity.
В диалоговом окне Выбор экземпляра Unity отображаются сведения о каждом экземпляре Unity, к которому можно подключиться.
Проект Имя проекта Unity, который выполняется в этом экземпляре Unity.
Компьютер Имя компьютера или устройства, на котором выполняется этот экземпляр Unity.
Тип Редактор, если данный экземпляр Unity работает как часть редактора Unity; Проигрыватель, если этот экземпляр Unity является автономным проигрывателем.
Порт Номер порта UDP-сокета, через который данный экземпляр Unity обменивается данными.
так как Инструменты Visual Studio для Unity и экземпляр Unity обмениваются данными через сетевой сокет UDP, для разрешения этого брандмауэра может потребоваться правило. При необходимости может появиться запрос на подключение, чтобы VSTU и Unity могли обмениваться данными.
Выбор экземпляра Unity, который не отображается в списке
Если у вас установлен известный проигрыватель Unity, который не отображается в списке, можно использовать кнопку входные IP-адреса в окне Выбор экземпляра Unity. Введите IP-адрес и порт работающего проигрывателя Unity, чтобы подключить отладчик.
Чтобы упростить отладку проигрывателя, не вводя IP-адрес и порт каждый раз, включите параметр использовать сохраненные целевые объекты отладки в меню сервис > параметры > инструменты для Unity > общие .
Visual Studio будет показывать сохраненные целевые объекты отладки в качестве варианта кнопки присоединить к Unity.
- в Visual Studio для Mac в верхнем меню выберите выполнить > присоединить к процессу.
- В диалоговом окне Присоединение к процессу выберите параметр отладчик Unity в раскрывающемся меню отладчика внизу.
- Выберите экземпляр Unity из списка и нажмите кнопку присоединить .
Установка или обновление пакета редактора Visual Studio
В Unity версии 2020 и более поздних для более эффективной работы с IDE, например Visual Studio и Visual Studio для Mac, необходим отдельный пакет Unity. Он должен быть включен по умолчанию, но для этого пакета, который можно обновить в любое время, выпускаются обновления.
- В редакторе Unity выберите меню Windows > Диспетчер пакетов.
- Выберите пакет Редактор Visual Studio.
- Если доступна новая версия, нажмите кнопку Обновить.
Переменные в скриптах
Что такое переменная ? Технически, это крошечная область памяти компьютера, которая содержит любую информацию, которую вы там помещаете. Во время работы игры, переменная отслеживает, где хранится информация, какое значение содержится там и тип информации. Между тем, все, что вам следует знать — это то, каким образом переменная работает в скрипте, и это очень просто понять.
Configure the code editor
Specify the External Script Editor in Unity
Once you’ve installed a code editor, open Unity, go to Preferences > External Tools and set the External Script Editor to your code editor.
The External Tools settings
Attach your code editor to the Unity Player
To attach your code editor to the Unity Player, in your code editor, select the IP address (or machine name) and port of your Player. For an example of where to find this in Visual Studio, see Attach Visual Studio to the Unity Editor.
Note: Your code editor will show all instances of Unity that are available to debug. Make sure you attach the code editor to the correct instance of the Unity Player, and not to the Unity Editor if both are running.
When you have attached the debugger, you can begin debugging normally. For instructions on how to attach the Unity Player to your specific code editor, see Code editor external documentation. For an example of how to attach a Unity Player that runs on a mobile device to Visual Studio, see Debug Android and iOS devices with Visual Studio.
Set breakpoints in Visual Studio
To set a breakpoint in Visual Studio, click on the column to the left of your code, on the line you want to stop the debugger. A red circle appears next to the line number and the line is highlighted.
A breakpoint in Visual Studio.
Что с точками?
Если вы посмотрите на код, написанный другими, то увидите слова с точками, разделяющими их. Что это такое? Выглядит довольно запутанным, не так ли?
Вот пример из документации Unity:
transform.position.x
Не стоит беспокоиться о том, что означает вышеописанное, это будет рассмотрено позже, я просто хочу, чтобы вы посмотрели.
Это называется синтаксисом точки.
Поскольку скрипт Unity подобен иностранному языку, существуют грамматические правила, которым необходимо следовать.
Вот еще один пример. Это адрес моего (прим.ред.- автора статьи) дома, что-то вроде:
USA.Vermont.Essex.22 myStreet
Выглядит забавно, не правда ли? Это потому что я использовал синтаксис (грамматику) скриптов Unity вместо почтового. Тем не менее, держу пари, что если вы посмотрите внимательно, то сможете легко понять, как найти мой дом.
Вот еще один пример. Если бы мы встретились в каком-то случайном месте на Земле, и я бы попросил вас принести мне мои солнцезащитные очки, используя только это:
USA.Vermont.Essex.22 myStreet.2nd floor.office.desk.center.drawer.sunglasses
Были бы у вас какие-нибудь сложности в обнаружении их местонахождения?
Ensure you attach the debugger to the correct Unity instance
You can attach your code editor to any instance of the Unity Editor or Unity Player on the local network that has debugging enabled. When you attach the debugger, ensure that you attach it to the correct Unity instance. If you know the IP address or machine name of the device on which you are running the Unity Player, this helps to locate the correct instance.
Шаг, шаг, обойти, шаг…
Во время выполнения скрипта могут быть прерывания, такие как ответ на телефонный звонок в примере «разговор с другом». «Разговор с другом» был функцией , которую вы выполняли, когда вами было обнаружено прерывание, телефонный звонок. Вы должны были сделать что-то другое, вы должны были выполнить другую функцию , что также имеет свои собственные последовательные шаги. После завершения, вы возвратились к шагам «разговор с другом», именно туда, где остановились.
Отладка Unity
Набор средств Visual Studio для Unity позволяет отлаживать скрипты редакторов и игр для проекта Unity с помощью мощного отладчика Visual Studio.
Verify the managed debugging information is available
If the debugger attaches to the Unity instance but breakpoints don’t load, the debugger might not be able to locate the managed debugging information for the code. Managed code debugging information is stored in files named .pdb, next to the managed assembly (.dll file) on the disk.
When you enable the correct preferences and build options (see Configure the code editor), Unity generates this debugging information automatically. However, Unity cannot generate debugging information for managed plugins in your project. You can only debug code from managed plugins if the associated .pdb files are next to the managed plugins in the Unity project on disk.
Читайте также: