Как вывести сообщение в консоль unity

Обновлено: 25.06.2024

Данная статья представляет из себя первый набор базовых (из раздела Beginner) уроков. Уроки в основном нацелены на изучение скриптинга и использование компонентов.
Поэтому предполагается, что с основами работы в GUI Unity вы слегка знакомы. Если нет, изучите вводный раздел на этом же сайте.
Уроки достаточно ясные и короткие, так что трудностей в процессе их изучения должно возникать минимум.

PS: А хорошо это или плохо — вопрос достаточно сложный.

В некоторых местах уроков есть минимальные косметические изменения, не затрагивающие основную суть.

Базовый Урок 00 — Добавления массы / гравитации к твердому телу.


В уроке рассказывается, как добавлять гравитацию / массу к объекту с помощью компонента Rigidbody (твердое тело).

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

Создайте проект или новую сцену в готовом проекте (предварительно подключив Standard Assets packages). Добавьте куб (GameObject->Create Other->Cube), плоскость (GameObject->Create Other->Plane) и точечный источник света (GameObject->Create Other->Point Light). Расположите их как указанно на картинке ниже.

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

image_0_1

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

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


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

Дополнительные материалы:

Базовый Урок 01 — Основы обнаружения столкновений.


В уроке рассказывается как обнаружить столкновения (collisions) между объектами используя скрипты.

Создайте сцену как в предыдущем уроке или загрузите уже имеющуюся. Добавьте к ней еще один куб, растяните его по горизонтали в 5-6ть раз и по вертикали в 2а раза. Расположите его как показано на рисунке ниже.

В этом уроке важны названия объектов. Назовите плоскость Floor, а куб представляющий стену Wall (Ваш К.О.)

Обратите внимание, что название класса всегда должно совпадать с названием скрипта(регистр букв тоже имеет значение):

image_1_1

Дополнительные материалы:

Базовый Урок 02 — Основы ввода


В Уроке рассказываются основы ввода с использованием скриптов.

image_2_0

Чтоб понять был ли ввод с клавиатуры или нет, требуется проверять это каждый кадр. Добавим в нашу функцию Update следующий код:

image_2_1


Аналогичный результат можно получить если заменить строку

Дополнительные материалы:

Базовый Урок 03 -Префабы


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

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

image_3_2


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

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

Console.Write() не то, что надо. Там Debug.Log() , хотя не знаю, есть ли разница



1 ответ 1

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

Сделай его как экстеншн к класу Debug и будет тебе счастье. Если же закрались баги в коде - исправь сохранив логику.

оно будет выводить в консоль

  • и лист, и аррей, и любой иной перечисляемый тип
  • и обычные типы данных


Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2022 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2022.2.28.41552

Обновлен код

Теперь использует OnCollisionEnter2D и по-прежнему не работает должным образом. Что мне еще не хватает?

4 ответа

Поскольку print - это метод, определенный в MonoBehaviour для печати в консоль Unity, я предполагаю, что вы на самом деле просматриваете консоль Unity для вывода, и ничего не отображается. Это означает, что либо OnTriggerStay не вызывается, либо корень коллайдера не имеет тега PlayerObject .

OnTriggerStay вызывается, когда трехмерное физическое тело находится внутри триггера. Убедитесь, что в GameObject голосования есть компонент Vote1, а в его коллайдере установлен флажок Is Trigger.

Также убедитесь, что объект имеет физическое тело и коллайдер, который не является триггером. Корневое преобразование объекта (то есть преобразование в иерархии без родителей) должно иметь тег PlayerObject . Если игрок находится внутри родительского контейнера, то transform.root получит этого родителя, а не сам плеер.

Также убедитесь, что столкновения между двумя элементами не отфильтровываются через Edit-> Project Settings-> Physics-> Layer Collision Matrix.

Наконец, убедитесь, что все включено!

Примечание : вы используете OnTriggerStay , который будет попадать один раз за кадр, пока игрок находится в триггере. Если у вас нет какого-либо механизма для удаления игрока после голосования, они будут добавлять 30-60 голосов в секунду, в зависимости от FPS.

Либо так, либо поищите подходящее решение для ведения журнала, например, NLog.

Как сделать так, чтобы в 2d платформере, когда игрок "напрыгивает" на объект - происходили какие-либо действия
Здравствуйте! Только начал погружаться в мир Unity и возникли некоторые трудности. При помощи.


Ошибка в стоке с StartCoroutine: не удается преобразовать из "System.Collections.IEnumerable" в "string"
Ошибка в строке StartCoroutine не удается преобразовать из "System.Collections.IEnumerable" в.

Как перенести папку загрузок Asset Store с диска "C:" на диск "D:"
Как перенести папку загрузок Asset Store с диска "C:" на диск "G:"? Очень мало места на диске С!

Нажатие кнопки "В бой" в игре World of Tanks
Узнаю PID формы: var window: hwnd; Begin window:=FindWindow(nil,'WoT Client'); end;.


Разная логика на "нажатие" и "нажатие и удержание в течение 5 сек" кнопки
Здравствуйте. На форме кнопка. Требуется, чтобы при её нажатии выполнялась функция (выполнялась.

Вывод "Hello, world!" заданое количество раз, с новой строки
Доброго времени суток. Помогите написать програму на асме,сам впервые стыкаюсь с ним.. Сама.

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