在Unity中转换TextMesh

问题描述 投票:0回答:3

我在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);

同样的转换也可以用在其他物体上,比如四边形。我真的不知道我应该转换哪个对象,所以我同时尝试了以下两种方法 textMeshtheText,也分别。

当我在Unity中点击 "播放 "并在场景中选择创建的对象时,那么文本的轮廓在正确的位置上以橙色高亮显示。然而,可见的白色文本仍然在(0, 0, 0)。

这不仅是在脚本中,当我通过Unity UI创建一个 "3D Object3D Text",并用鼠标拖动它时,也是同样的问题。

enter image description here

c# unity3d
3个回答
0
投票

如果你给你的文本指定一个颜色,你将能够看到它。试试这段代码。

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);

希望能帮到你


0
投票

为什么你要在代码中创建文本网格?只要到GameObjects -> UI -> Text或Text Mesh Pro中去创建它,并把它放在你的场景中。如果你需要移动它,只需引用

 gameObject.transform.position

的脚本中附加到它。

编辑:尝试删除

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

第二次编辑:对不起,没有注意,你只需要改变move theText(游戏对象)。


0
投票

我换了 TextMeshTextMeshPro (这需要导入 using TMPro;). TextMeshPro在写这篇文章的时候是实验性的unstable,而且定位似乎也和基本的3D对象的定位不一致,但目前对我来说是一个可以接受的解决方案。

如果有人用TextMesh找到了真正的解决方案,我很乐意把他们的答案选为正确答案!

© www.soinside.com 2019 - 2024. All rights reserved.