Вывести сообщение в дебаг unity

Обновлено: 04.07.2024

3 ответа

Если print не работает, Debug.Log не будет работать, так что это не , проблема.

Это возможные причины, по которым print не отображается в консоли:

1 .Script не прикреплен к GameObject.

2 . GameObject, к которому прикреплен скрипт, не активен. Активируйте его из редактора.

3 . Сценарий NumberWizard не включен. Включить скрипт.

4 . Переключатель журнала не отмечен.

Вы пытались использовать Debug.Log ? Кроме того, вы также можете использовать их для специфичности: Debug.LogWarning и Debug.LogError . Также убедитесь, что этот скрипт прилагается.

Надеюсь, это поможет!

По этой ссылке, print() или Debug.Log , будут работать только при следующих условиях

Use Debug.Log to print informational messages that help you debug your application. For example, you could print a message containing a GameObject.name and information about the object’s current state.

You can format messages with string concatenation:
Debug.Log("Text: " + myText.text);

You can also use Rich Text markup.

If you pass a GameObject or Component as the optional context argument, Unity momentarily highlights that object in the Hierarchy window when you click the log message in the Console . Use a context object when you have many instances of an object in a Scene so that you can identify which one produced the message. Example 2 , below, illustrates how this feature works. When you run this example, first click one of the cubes it creates in the Scene. The example prints a log message to the Console . When you click on the message, Unity highlights the context object in the Hierarchy window — in this case, the cube you clicked on in the Scene.


Дебажим логами.

Класс Debug позволяет выводить текст, ошибки, рисовать линии, ставить редактор на паузу и тд.
Рассмотрим пример.
Метод будет вызван когда противник будет в зоне видимости орудия. В нем, меш оружия повернется в его сторону, нарисует линию к нему. Как только это произойдет — редактор станет в паузу.


Gizmos

Gizmos используются для визуального дебага.
Рассмотрим пример.
Блоки, которые проходимы для врага, окрашиваются синими кубами, непроходимы – красными (заняты преградой) или серым (нет пути), финиш – голубой цвет. Если выделен элемент земли (мышкой в редакторе) – то зеленым подсвечиваются его соседи (в данном случае диагональные клетки соседями не считаются, система соседей используется для поиска пути).


Обратите внимание что Gizmos можно включать и отключать раздельно для каждого типа компонентов в окне Scene (вверху справа) — показано развернутым на первой картинке.

Handles.

Благодаря этому расширению кролики летают по цикличным кривым. И все это красиво настраивается в редакторе.


Attributes.


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

Свой редактор уровней

Если ваша игра подразумевает структурированные, однотипные уровни в большом количестве (в моем примере это Tower Defence). То огромную кучу времени вам может сэкономить собственный редактор уровней.

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

Мне например показания акселерометра нужно посмотреть,
Использовать только UI- текстовые компоненты можно?

я тестил на планшете LG, там вообще какие то ограничения тупые стояли, и дебаг никак не подключался. просто выводил инфу в текстовое поле на UI, кстати тоже акселерометр был.

Да на юнити под андроид только в UI вроде как можно.

Так же кинул три компонента Text со вкладки UI переименовал их и написал код который потом кинул на Player, так же в инспекторе выбрал свои компоненты смотрим на картинки- все работает и куб движется от акселерометра и вывод значений происходит на телефоне.

И вот что я подумал, акселерометр оказывается выдает значения от 0 до 1.
Я вобше думал он в градусах поворот будет выдавать!

Что это тогда за значения, почему они от 0 до 1?

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

Народ! Accelerometer на андроиде показывает не только угол, но и ускорение!
То есть если телефон плавно поваричивать вокруг из любых осей- он покажет от 0 до 90 при таком коде:

Смотрим на картинку телефон лежит на столе, почему -90 по z оси так потому что образно говоря "грузик в датчике давит на низ".

Если начать резко телефон трясти до доходит и до 200 и до 300 значения и больше! (но не более 360).
При плавном наклоне все углы наклона у меня андроид показал адекватно (код можно цеплять на игровые объекты- транспорт и прочие программы).

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

Эта статья в основном посвящена моему личному пониманию класса Debug и некоторых методов Debug.

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

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

Например, следующая черная технология:

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

К тому же

Интересно, заметили ли вы оранжевый шар в верхнем левом углу картинки выше?


Это оно:

После изменения цвета здесь он станет таким:


Вот Это Да! Таким образом, вы можете легко найти игровой объект, у которого даже нет модели в сцене! Разве это не удобно? !

Теперь давайте внимательно поговорим о том, что мы делаем сегодня: класс отладки

  • Debug.developerConsoleVisible:
    Это переменная типа bool для консоли разработки. Она будет автоматически установлена ​​в начале класса отладки, как в следующем коде:

Каков эффект установки этой переменной bool истинного значения?

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

Функция этого параметра в основном написана в следующем коде

Другими словами, после того, как вы проверите этот параметр и затем выпустите игру, версия игры будет версией со своей собственной отладочной информацией!

DrawLine(Vector3 start, Vector3 end, Color color = Color.white, float duration = 0.0f, bool depthTest = true):
Чтобы нарисовать линию от начальной до конечной точки, необходимо указать цвет и продолжительность линии. Если длительность равна 0, то линия будет отображаться только для 1 кадра. Линия будет нарисована в окне Scene под редактором. Если включен метод рисования Gimzo, линия также будет нарисована в окне игры.(Если последний параметр истинен, он будет иметь чувство иерархии и будет заблокирован объектами, близкими к камере)

DrawRay(Vector3 start, Vector3 dir, Color color = Color.white, float duration = 0.0f, bool depthTest = true):
Нарисуйте линию направления и длины от начальной точки, и вам нужно указать цвет и продолжительность линии. Если длительность равна 0, то линия будет отображаться только для 1 кадра. Линия рисуется в окне Scene под редактором. Если включен метод рисования Gimzo, линия также будет нарисована в окне игры.(Последний параметр похож на функцию выше)

Break():
Приостановите редактор. Это очень полезно, когда вы хотите автоматически приостанавливать игру при запуске в определенной ситуации, чтобы вы могли просматривать значения на панели свойств объекта.


Log(object message, Object context):
Выводит информацию журнала в консоль Unity. Когда вы выбираете отладочную информацию в консоли, Unity устанавливает связь между отладочной информацией и объектом триггера. Это очень полезно, когда вы хотите узнать, на каком объекте была отправлена ​​ошибка.(Предыдущий параметр - это оператор, отображаемый в консоли в левом нижнем углу Unity, а последний параметр - это игровой объект, который вы хотите обнаружить)
Dubug.Log будет использовать информацию журнала обратной связи отладки как Massage

То есть приведенная выше форма отображается на панели управления Unity.

LogError(object message, Object context):
Я просто кратко представлю различные варианты Dubug.Log.


Эта функция, функция Debug.LogError, сделает информацию журнала обратной связи как Error

Эта форма отображается на панели управления Unity.


LogWarning(object message, Object context):
Эта функция также является вариантной функцией Debug.Log. Если она определена, информация журнала будет представлена ​​как предупреждение

Эта форма отображается на панели управления в нижнем левом углу Unity.

LogException(Exception exception, Object context):
Первым параметром этой функции является аномальный объект, а конкретные доступные методы - это следующий код:

По умолчанию метод Debug.Assert () применим только к отладочной версии.

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

Читайте также: