Я создаю пустой игровой объект, добавляю к нему текстовый модуль со случайным текстом, текст не будет виден в редакторе независимо от цвета, размера или шрифта.
Когда я помещаю его как дочерний элемент под холст, он отображается нормально
Поскольку я хотел бы создать текстовый элемент в префабах, для меня очень важно выяснить основную причину.
Мой холст активен в Layer UI
Пространство экрана в режиме рендеринга - оверлей
пиксель идеальный не отмечен
порядок сортировки 0
целевой дисплей дисплей 1
Масштаб с размером экрана 1920 1080
Режим соответствия экрана соответствует ширине или высоте
эталонные пиксели на единицу
Графический рейкастер
игнорировать реверсивную графику
блокирующие объекты нет
блокирующая маска все
У меня также есть 1 скрипт, следящий за тем, чтобы камера следовала за персонажем.
Любой клуб о том, почему или что-то, что я пропустил?
я меняю слой текстового объекта тоже ничего не происходит
Все в 2D, и при создании текста нет другого игрового объекта, он нормально отображается под холстом. Не отображается, когда за его пределами.
Или вам нужен холст для каждого
Спасибо за информацию, сможет ли TMP отображать текст, не являясь дочерним объектом Canvas?
Вам нужно создать объект WorldSpace Canvas и поместить ваш игровой объект с текстовым компонентом на него под WorldSpace Canvas.
Компоненты пользовательского интерфейса не видны за пределами холстов. Как сказал @derHugo в комментариях. Если вы хотите отображать элементы пользовательского интерфейса в мире, например, поверх персонажа или на стене и т. д., вам необходимо создать холст WorldSpace.
Если я хочу поместить текстовый объект в префаб, каким должен быть подход? Поскольку префабы еще не появляются в начале игры, можно ли как-то поместить текстовый компонент в префаб? например Изображение магазина, где текст будет названием магазина
Если вы собираетесь поместить префаб под компонент Canvas
— если это элемент пользовательского интерфейса — тогда можно создать a game object with text component without Canvas component.
Как только вы создадите экземпляр или поместите префаб под Canvas, он должен работать нормально. Но если вы собираетесь использовать префаб в world space
, вам нужно создать компонент WorldSpace Canvas внутри префаба, а затем поместить под него текстовый компонент. Убедитесь, что в этой сцене есть только один EventSystem
. Не создавайте EventSystem
для каждого объекта prefab/worldSpaceCanvas.
Это в значительной степени ожидаемое поведение ... без
Canvas
CanvasRenderer
не отображается ... Вместо этого вы, вероятно, ищете TextMeshPro