因此,我有一个脚本,该脚本创建GameObject,设置父对象,位置和旋转,添加MeshRenderer和TextMesh组件,设置两者的设置以及将GameObject添加到列表。当我运行它时,文本显示不正确,如下所示。如果我在编辑器中选择GameObject并将字体手动更改为其他字体,它将以该新字体正确显示。如果我将其更改回脚本最初设置的位置,它将以原始字体正确显示。另一个奇怪的事情是,当我将字体设置为Arial时,它可以完美工作。我尝试同时使用ttf和otf字体,同样的问题。 手动修复之前和之后:
for (int face = 0; face < poly.faces.Length; face++)
{
GameObject line = new GameObject("Face " + face.ToString());
line.transform.SetParent(transform);
line.transform.position = poly.FindCenterOfFace(face);
line.transform.LookAt(new Vector3(0, 0, 0));
line.AddComponent<MeshRenderer>();
line.GetComponent<MeshRenderer>().receiveShadows = false;
line.GetComponent<MeshRenderer>().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
line.AddComponent<TextMesh>();
line.GetComponent<TextMesh>().font = font;
line.GetComponent<TextMesh>().richText = false;
line.GetComponent<TextMesh>().color = isBlack ? black : white;
line.GetComponent<TextMesh>().tabSize = 0;
line.GetComponent<TextMesh>().fontSize = 120;
line.GetComponent<TextMesh>().characterSize = 0.01f;
line.GetComponent<TextMesh>().anchor = TextAnchor.MiddleCenter;
line.GetComponent<TextMesh>().alignment = TextAlignment.Center;
line.GetComponent<TextMesh>().text = face.ToString();
line.GetComponent<TextMesh>().fontStyle = FontStyle.Normal;
lines[face] = line;
}
如何使它正确显示?我尝试将字体设置为另一种字体,然后再次在脚本中返回,但是它什么也没显示。