Преобразуйте TextMe sh в Unity - PullRequest
0 голосов
/ 01 мая 2020

Я создал текст me sh в Unity, например:

var theText = new GameObject();
var textMesh = theText.AddComponent<TextMesh>();
var meshRenderer = theText.AddComponent<MeshRenderer>();
textMesh.text = name;
textMesh.transform.position = new Vector3(0, 5, 0);
theText.transform.position = new Vector3(0, 5, 0);

Такой же тип преобразования работает с другими объектами, такими как квад. Я на самом деле не знаю, какой объект я должен преобразовать, поэтому я попробовал и textMesh и theText, также по отдельности.

Когда я нажимаю «Воспроизвести» в Unity и выбираю созданный объект на сцене, контур текста выделяется оранжевым цветом в правильной позиции. Тем не менее, видимый белый текст по-прежнему в (0, 0, 0).

Это не только в сценариях; когда я создаю «3D-объект / 3D-текст» через пользовательский интерфейс Unity и перетаскиваю его мышью, это та же проблема.

enter image description here

Ответы [ 3 ]

0 голосов
/ 01 мая 2020

Почему вы создаете текст me sh в коде? Просто go в GameObjects -> UI -> Text или Text Me sh Pro и создайте его и поместите в свою сцену. Если вам нужно переместить его, просто укажите

 gameObject.transform.position

в прикрепленном к нему сценарии.

edit: попробуйте удалить

textMesh.transform.position = new Vector3(0, 5, 0);

second edit: извините, не было обращая внимание, вам просто нужно изменить ход текста (игровой объект)

0 голосов
/ 02 мая 2020

Я изменил TextMesh на TextMeshPro (что требует импорта using TMPro;). TextMeshPro является экспериментальным / нестабильным на момент написания, а также позиционирование кажется несовместимым с позиционированием базовых c 3D-объектов, но на данный момент это приемлемое для меня решение.

Если кто-то найдет реальное решение с помощью TextMe sh, я с удовольствием выберу правильный ответ!

0 голосов
/ 01 мая 2020

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

var theText = new GameObject();
var textMesh = theText.AddComponent<TextMesh>();
var meshRenderer = theText.AddComponent<MeshRenderer>();
textMesh.text = name;

textMesh.color = Color.red; //THIS IS THE NEW LINE

textMesh.transform.position = new Vector3(0, 5, 0);
theText.transform.position = new Vector3(0, 5, 0);

Надеюсь, я вам помог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...