Задать вопрос
@Hisashi

Текст урона/лечения в Unity не появляется в режиме Game, но есть в Scene. Почему?

Здравствуйте, столкнулся с проблемой в Unity (2D-платформер, игра под мобильные).
Хочу реализовать отображение всплывающего текста урона и лечения (типа “-1”, “+1”, “Full” и т.д.) с помощью TextMeshPro. Префаб уже есть, и при ударе Instantiate срабатывает — в Scene объект появляется, но в Game его не видно.

Что уже сделано:
• Canvas для текста отдельный (UI > Canvas), стоит Render Mode: Screen Space - Overlay.
• Префаб текста — TextMeshPro - Text внутри пустого объекта.
• Спавн текста через Camera.main.WorldToScreenPoint(textSpawnPoint.position).
• Префаб действительно создается, это видно в инспекторе.
• Пробовал менять Sorting Layer, Canvas Order и т.п.
• Позиция у создаваемого текста запредельная (например, по X: 6000), хотя персонаж находится на X = -2.
• Сцена показывает, что текст есть, но в режиме Game — он отсутствует визуально.

Вопросы:
1. Почему текст не отображается в Game, хотя появляется в сцене?
2. Как корректно “привязать” префаб текста к позиции игрока на экране (например, над HPBar)?
3. Может быть, стоит использовать другой подход?

Если надо, скину код и скрины. Уже всё перепробовал — помогите!
  • Вопрос задан
  • 25 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
@DrRen7
Ну так если у вас новый canvas там трансформ а вы преобразуете (Camera.main.WorldToScreenPoint(textSpawnPoint.position)) в RectTransform вот и получаете позицию x и y в пикселях
Попробуйте создать объект на сцене(без Instantiate) и просто сменяйте его трансформ по позиции в Game, после уже работаете с Instantiate
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы