Console Window
The Console Window displays errors, warnings, and other messages the Editor generates. These errors and warnings help you find issues in your project, such as script compilation errors. They also alert you to actions the Editor has taken automatically, such as replacing missing meta files, which could cause an issue somewhere else in your project.
To help you debug your project, use the Debug class to print your own messages to the Console. For example, you can print the value of a variable at certain points in your script to see how they change.
This page covers the options you can use when you work with the Console window, and how you can filter your messages by searching for specific keywords.
Console window interface
To open the Console, from Unity’s main menu go to Window > General > Console.
A. The Console toolbar A row of buttons and basic controls at the top of the Unity Editor that allows you to interact with the Editor in various ways (e.g. scaling, translation). More info
See in Glossary has options for controlling how to display messages, and for searching and filtering messages.
B. The Console window menu has options for opening Log files, controlling how much of each message is visible in the list, and setting stack trace options.
C. The Console list displays an entry for each logged message. Select a message to display its entire text in the detail area. You can choose how many lines of each message to display here. See Adjusting the line count, below.
D. The detail area displays the full text of the selected message. If you enable stack trace, the detail area displays references to specific lines in code files as clickable links.
Console toolbar options
The toolbar of the Console window has options for controlling how to display messages, and for searching and filtering messages.
Disabling this option suspends logging, but the Console remains connected to the target build.
Disabling this option also hides the rest of the options in this drop-down menu.
Searching and filtering Console output
You can search Console messages for specific keywords from the Console search bar. As you type a search term, the Console filters messages to display only those that contain matching text. The Console highlights only the first match in the message text, and only if it’s in the visible part of the message (see Adjusting the Line Count below).
Searching for the term “name” highlights the first match in each message
You can search for anything that appears in any Console message, including numerals and special characters. For example, you can search for the time the console logged a message.
The search looks for exact matches of whatever you type in the search bar. You can’t search for two different terms at once, or use common search engine operators.
You can also filter Console messages by type. Click the buttons beside the search bar to toggle:
Adjusting the line count
Each Console entry can be up to 10 lines long.
To control how many lines of each entry are visible in the list, click the Console menu button, and select Log Entry > [X] Lines from the menu, where [X] is the number of lines to display for each entry.
Log entry line count
A larger line count displays more of the text of each entry, but reduces the number of entries visible at any given time. The line count doesn’t affect the Console search function, which always searches the full message text. If the matching text is on a hidden line, the search returns the message in the results, but doesn’t expand it to reveal or highlight the matching text. You can see the full message text in the detail area, but the matching text isn’t highlighted there.
Stack trace logging
Unity Console messages and log files can include detailed stack trace information. You can control the amount of stack trace information using the stack trace logging settings.
Opening Log files from the Console
Everything Unity or your code write to the Console Window is also written to a Log File. You can open Log files from the Console window menu. Select Open 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 or Open Editor Log.
Окно консоли
В окне Консоль отображаются ошибки, предупреждения и другие сообщения, генерируемые редактором. Эти ошибки и предупреждения помогают найти проблемы в проекте, например ошибки компиляции сценария. Они также предупреждают вас о действиях, предпринятых редактором автоматически, например о замене отсутствующих метафайлов, что может вызвать проблему где-то еще в вашем проекте.
Чтобы облегчить отладку проекта, используйте класс Debug для вывода собственных сообщений в консоль. Например, вы можете распечатать значение переменной в определенных точках вашего скрипта, чтобы увидеть, как они меняются.
На этой странице описаны параметры, которые можно использовать при работе с окном консоли, а также способы фильтрации сообщений путем поиска по определенным ключевым словам.
Интерфейс окна консоли
Чтобы открыть консоль, в главном меню Unity выберите Окно > Общие > Консоль.

А. Консоль панель инструментов ряд кнопок и основных элементов управления в верхней части редактора Unity, который позволяет вам взаимодействовать с Редактировать различными способами (например, масштабирование, перевод). Подробнее
См. в Словарь содержит параметры для управления отображением сообщений, и для поиска и фильтрации сообщений.
Б. В меню окна консоли есть параметры для открытия файлов журнала, управления сколько каждого сообщения отображается в список и настройка параметров трассировки стека.
С. В списке консоли отображается запись для каждого зарегистрированного сообщения. Выберите сообщение, чтобы отобразить весь его текст в области сведений. Вы можете выбрать, сколько строк каждого сообщения будет отображаться здесь. См. раздел Настройка количества строк ниже.
Д. В области сведений отображается полный текст выбранного сообщения. Если вы включите трассировку стека, в области сведений будут отображаться ссылки на определенные строки в файлах кода в виде интерактивных ссылок.
Параметры панели инструментов консоли
На панели инструментов окна консоли есть параметры для управления отображением сообщений, а также для поиска и фильтрации сообщений.
Открывает раскрывающееся меню с параметрами очистки.
Это полезно для ошибок во время выполнения, таких как нулевые ссылки, которые иногда генерируются при каждом обновлении кадра.
Этот параметр помечен именем целевой сборки для разработки (это сборка журнала, отображаемая в окне консоли). Если консоль не подключена к удаленной сборке, она помечена как Редактор, чтобы показать, что журнал, отображаемый в окне консоли, получен из локального редактора Unity.
Отключение этого параметра приостанавливает ведение журнала, но консоль остается подключенной к целевой сборке.
Отключение этого параметра также скрывает остальные параметры в этом раскрывающемся меню.
Выберите любую сборку из списка ниже Ведение журнала игрока, чтобы отобразить ее журнал в окне консоли.
Чтобы подключиться к сборке, выберите Подключить в диалоговом окне и добавьте ее в список разрабатываемых сборок в нижней части раскрывающегося меню.
Поиск и фильтрация выходных данных консоли
Вы можете искать сообщения консоли по определенным ключевым словам в строке поиска консоли. Когда вы вводите поисковый запрос, консоль фильтрует сообщения, чтобы отображались только те, которые содержат соответствующий текст. Консоль выделяет только первое совпадение в тексте сообщения и только в том случае, если оно находится в видимой части сообщения (см. Настройка количества строк ниже).
Поиск термина «имя» выделяет первое совпадение в каждом сообщении.
Вы можете искать все, что появляется в любом сообщении консоли, включая цифры и специальные символы. Например, вы можете найти время, когда консоль зарегистрировала сообщение.
Поиск ищет точные совпадения с тем, что вы вводите в строке поиска. Вы не можете искать два разных термина одновременно или использовать общие операторы поисковых систем.
Вы также можете фильтровать сообщения консоли по типу. Нажимайте кнопки рядом с панелью поиска для переключения:
Messages switch
Warnings switch
Errors switch
Регулировка количества строк
Каждая запись консоли может содержать до 10 строк.
Чтобы указать, сколько строк каждой записи отображается в списке, нажмите кнопку меню консоли и выберите в меню Запись журнала > [X] строк, где [X] — количество строк, отображаемых для каждой записи.
Количество строк записи журнала
Большее количество строк отображает больше текста каждой записи, но уменьшает количество записей, видимых в любой момент времени. Количество строк не влияет на функцию поиска консоли, которая всегда ищет полный текст сообщения. Если совпадающий текст находится в скрытой строке, поиск возвращает сообщение в результатах, но не расширяет его, чтобы показать или выделить совпадающий текст. Вы можете увидеть полный текст сообщения в области сведений, но совпадающий текст там не выделен.
Ведение журнала трассировки стека
Сообщения консоли Unity и файлы журналов могут содержать подробную информацию о трассировке стека. Вы можете управлять объемом информации о трассировке стека, используя настройки ведения журнала трассировки стека.
Открытие файлов журнала из консоли
Все, что Unity или ваш код записывает в окно консоли, также записывается в файл журнала. Вы можете открыть файлы журнала из меню окна консоли. Выберите Открыть Журнал проигрывателя Файл .log, созданный автономным проигрывателем, который содержит запись событий, таких как выполнение скрипта. раз, версия компилятора и время AssetImport. Файлы журнала могут помочь в диагностике проблем. Подробнее
См. в Словарь или Открыть журнал редактора.
Name already in use
Lessons / 09 / README.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
Скрипты. Программирование с помощью C#
Скриптовый язык — это язык программирования, который применяется для написания сценариев – кратких описаний действий, выполняемых движком Unity. А скрипты — это файлы, которые хранят в себе текст написанный на скриптовом языке.
Unity поддерживает следующие языки программирования: C# (с помощью библиотеки Mono), Javascript. Языки C# и Javascript считаются одними из самых популярных среди программистов. На C# пишутся программы для компьютера, веб приложения. Javascript активно используется для создания интернет страниц.
Скрипты можно писать вручную с помощью языка программирования, либо с помощью сторонних инструментов.

Программист пишет скрипт на одном из поддерживаемых Unity языков, сохраняет его в виде текстового файла. Далее добавляет его в проект Unity. В этот момент Unity проверяет код, написанный в скрипте и, если в нем нет ошибок, происходит компиляция.
Консоль ( Console ) – это панель в Unity, которая отображает ошибки в коде (отображаются красным значком), предупреждения (отображается желтым значком) и позволяет выводить справочную информацию (белый значок). По умолчанию эта панель отображается в нижней части программы в закладке Console . Если эта панель не отображается на экране, то в главном меню выбери Window → Console .

Сообщения отображаются в виде списка.
- Чтобы очистить список нажми кнопку Clear
- Активированный параметр Clear On Play автоматически очищает список при каждом запуске игры
- Параметр Collapse объединяет повторяющиеся строки в одну и показывает количество повторений
Установка среды разработки
Чтобы писать программы, необходим редактор кода.
В комплекте с Unity идет MonoDevelop, так что его не требуется устанавливать отдельно. Вы должны убедиться, что MonoDevelop установлен в качестве внешнего редактора скриптов в Preferences (меню: Edit > Preferences , а затем выберите панель External Tools )
Также MonoDevelop можно обновить с оффсайта. Он полностью бесплатен.
Другой вариант — использовать Visual Studio. Бесплатная версия требует регистрации через месяц после установки.
Создание первого скрипта: вывод сообщения в консоль
Данный код выведет сообщение Hello world! в консоль. Функция Start() вызовется один раз при старте программы
Добавление и запуск скрипта
Скрипт определяет только план компонента и, таким образом, никакой его код не будет активирован до тех пор, пока экземпляр скрипта не будет присоединен к игровому объекту. Вы можете прикрепить скрипт перетаскиванием ассета скрипта на игровой объект в панели Hierarchy или через окно Inspector выбранного игрового объекта. Имеется также подменю Scripts в меню Component , которое содержит все скрипты, доступные в проекте, включая те, которые вы создали сами. Экземпляр скрипта выглядит так же, как и другие компоненты в окне Inspector :

После присоединения скрипт начнет работать, когда вы нажмете Play и запустите игру
Код, перед которым стоят два слеша // , игнорируется компилятором и ты можешь добавлять туда описание своего кода, чтобы сделать его понятнее
Код, который должен вызываться один раз при старте программы, мы пишем внутри функции Start() (как в примере выше)
Код, который должен вызываться каждый кадр, мы пишем внутри функции Update()
Если хотим сохранить данные (количество жизней игрока, патронов или очков опыта), то для этого используются переменные. Переменные разделяются на типы, которых существует огромное множество.
Разберем самые популярные:
- string . Позволяет хранить текст (пример: имя игрока);
- int . Хранит числа как положительные, так и отрицательные целые числа (пример: 50, -100);
- float . Хранит числа с плавающей точкой одинарной точности (пример: 3.14f);
- double . Хранит числа с плавающей точкой двойной точности (пример: 3.14);
- bool . Переменная-переключатель. Хранит состояние включено (true) или выключено (false);
- Vector2 . Переменная данного типа хранит в себе значение по оси x и y;
- Vector3 . Переменная данного типа хранит в себе значение по оси x, y и z;
- GameObject . Переменная хранит в себе объект из сцены Unity;
- Transform . Переменная хранит в себе transform (координаты, поворот и масштаб) объекта из сцены Unity;
- Color . Хранит цвет;
Так создается целочисленная переменная с именем number , в которую записывается число 42
Операции с переменными
Переменные численных типов можно складывать, вычитать, умножать и делить.
Разберем их подробнее:
- + — операция сложения;
- — — операция вычитания;
- * — операция умножения;
- / — операция деления.
Рассмотрим пример вывода суммы целых чисел в консоль.
Того же результата можно добиться и не сохраняя числа в переменные
Часто возникает необходимость соединения нескольких строк и цифр вместе. Для этих целей используется символ + , так же как и для сложения чисел (конкатенация – это совмещение нескольких строк в одну).
Или без использования переменных
Счетчик времени с помощью Time.deltaTime
Практически во всех играх требуется знать сколько времени прошло с момента запуска игры (пример: игры на время). Но в Unity мы можем узнать только сколько прошло времени между кадрами (напоминаю, что игра – это набор кадров, которые быстро меняются. В одну секунду количество таких кадров может достигать 60 и больше).
Чтобы узнать сколько времени прошло между кадрами — используется Time.deltaTime .
Чтобы сделать дробное число целым, ставим перед ним (int)
Координаты объекта хранятся в свойстве transform.position . Каждая координата имеет тип float
Получение внешних объектов и параметров
Часто нам требуется, чтобы один объект взаимодействовал с другим. Для этого в скрипте данного объекта следует создать публичную public переменную
После этого она появится в инспекторе свойств объекта. И мы сможем присвоить ей нужное значение (или объект)
В этом примере мы выводим в консоль координаты врага, ссылка на который добавляется через инспектор свойств объекта
Unity3d. Уроки от Unity 3D Student (B00-B03)
Данная статья представляет из себя первый набор базовых (из раздела Beginner) уроков. Уроки в основном нацелены на изучение скриптинга и использование компонентов.
Поэтому предполагается, что с основами работы в GUI Unity вы слегка знакомы. Если нет, изучите вводный раздел на этом же сайте.
Уроки достаточно ясные и короткие, так что трудностей в процессе их изучения должно возникать минимум.
PS: А хорошо это или плохо — вопрос достаточно сложный.
В некоторых местах уроков есть минимальные косметические изменения, не затрагивающие основную суть.
Базовый Урок 00 — Добавления массы / гравитации к твердому телу.
В уроке рассказывается, как добавлять гравитацию / массу к объекту с помощью компонента Rigidbody (твердое тело).
Если вы хотите добавить массу или гравитацию к объекту, нужно воспользоваться компонентом Rigidbody, который расположен в меню компонентов.
Создайте проект или новую сцену в готовом проекте (предварительно подключив Standard Assets packages). Добавьте куб (GameObject->Create Other->Cube), плоскость (GameObject->Create Other->Plane) и точечный источник света (GameObject->Create Other->Point Light). Расположите их как указанно на картинке ниже.

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

Теперь добавим компонент Rigidbody (твердое тело). Он расположен в меню Component->Physics. Выберете наш куб и добавьте этот компонент к нему.

Если нажать на Play, вы увидите как куб падает на плоскость под действием силы тяжести. Давайте немного изменим физические свойства нашего куба. Снова выберите куб. В Inspector View вы можете увидеть компонент Box Collider, одним из параметров которого является Material (по умолчанию значение None(Physics Material)). Кликните правой кнопкой мыши на это значение и выскочит окно выбора физического материала. Если вы создавали проект, подключив стандартный набор ресурсов (Standard Assets) вы увидите несколько стандартных физических материалов. Выберете Bouncy (Упругий).

Теперь нажав Play вы увидите, как после падения куб начнет отскакивать от поверхности.
Дополнительные материалы:
Базовый Урок 01 — Основы обнаружения столкновений.
В уроке рассказывается как обнаружить столкновения (collisions) между объектами используя скрипты.
Создайте сцену как в предыдущем уроке или загрузите уже имеющуюся. Добавьте к ней еще один куб, растяните его по горизонтали в 5-6ть раз и по вертикали в 2а раза. Расположите его как показано на рисунке ниже.

В этом уроке важны названия объектов. Назовите плоскость Floor, а куб представляющий стену Wall (Ваш К.О.)
В Project View нажмите на Create и выберете С# Script. Назовите его boxdrop. Дважды кликнув на скрипт вы откроете его в вашем редакторе скриптов (как правило, по умолчанию это MonoDevelop. У автора статьи это Visual Studio 2010 под Windows или Textmate под MacOs).
Обратите внимание, что название класса всегда должно совпадать с названием скрипта(регистр букв тоже имеет значение):
По умолчанию Unity создает каркас для C# скрипта. Удалите из тела класса boxdrop все содержимое и замените следующим:
Функция OnCollisionEnter определяет столкновение объекта с другими объектами. А статический метод Log класса Debug пишет сообщение в консоль Unity. После сохранения скрипта, добавьте его как компонент для падающего куба.
Теперь если вы нажмете Play, в момент когда куб коснется пола консоль выдаст соответствующее сообщение. Открыть окно консоли можно комбинацией ctrl + shift + c в Windows или cmd + shift + c в MacOs. Последнее консольное сообщение отображается в статус баре проекта (внизу окна).

Причем сообщение будет выдаваться при каждом столкновении.
Для того, чтобы понять с каким именно объектом столкнулся наш куб, мы будем брать значение параметра класса Collision, которое будет принимать метод OnCollisionEnter:
Нажмите Play и после того как ваш куб коснется несколько раз стены и пола остановите игру и откройте консоль. Теперь при столкновении только со стеной или полом будет выдаваться соответствующие названию объекта сообщение.

Дополнительные материалы:
Базовый Урок 02 — Основы ввода
В Уроке рассказываются основы ввода с использованием скриптов.
В Unity существует множество способов для ввода текстовых данных. Мы рассмотрим простейший случай, в котором нажатие на клавишу «пробел» вызовет сообщение в консоли Unity. В отличии от предыдущих уроков, в этой сцене присутствует только камера и пустой игровой объект (GameObject->Create Empty).

Добавим C# скрипт и назовем его keyPress. Откройте скрипт. В теле класса keyPress вы увидете пустую функцию Update(). Она вызывается каждый кадр:
Чтоб понять был ли ввод с клавиатуры или нет, требуется проверять это каждый кадр. Добавим в нашу функцию Update следующий код:
Сохраним файл и добавим этот скрипт к пустому объекту (перетащив скрипт на объект или же выделив объект и перетащив скрипт в Inspector View). Давайте выясним, что такое «Jump». Идем в Edit->Project Settings->Input.

В Inspector’e открылся Input Manager. Разверните пункт Axes. Если выбрать Jump, видно что его имя как раз и представляет строка «Jump», а значение переменной Positive Button есть space. Про остальные параметры вы можете прочитать в справочнике Unity (ссылка в конце урока).
Запустите сцену, перейдите в закладку Game View и нажмите пробел, после чего в консоли (и внизу окна проекта) увидите соответствующее сообщение.

Аналогичный результат можно получить если заменить строку
Дополнительные материалы:
Базовый Урок 03 -Префабы
В Уроке рассказывается, как создавать префабы, и для чего они нужны.
Префаб (сборная конструкция) — это объект, содержащийся в вашем проекте, его можно клонировать и создавать множество его экземпляров, причем все экземпляры при копировании будут иметь те же компоненты те же компоненты. Создайте или загрузите сцену из Базового Урока 1. У нас на сцене присутствует куб, который падает и выдает сообщение в консоль при столкновении с объектами. Что если мы хотим создать множество таких же кубов (с уже добавленными компонентами)?
Создадим префаб, с помощью Create->Prefab в Project View.

В итоге получим серую иконку с названием New Prefab.

Переименуем ее в «BouncyBox». Теперь нам осталось лишь перетащить все что требуется в наш префаб. То есть Cube.

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

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