从脚本创建的TextMesh显示不正确

时间:2018-08-29 02:04:45

标签: c# unity3d

因此,我有一个脚本,该脚本创建GameObject,设置父对象,位置和旋转,添加MeshRenderer和TextMesh组件,设置两者的设置以及将GameObject添加到列表。当我运行它时,文本显示不正确,如下所示。如果我在编辑器中选择GameObject并将字体手动更改为其他字体,它将以该新字体正确显示。如果我将其更改回脚本最初设置的位置,它将以原始字体正确显示。另一个奇怪的事情是,当我将字体设置为Arial时,它可以完美工作。我尝试同时使用ttf和otf字体,同样的问题。 手动修复之前和之后:

image

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

如何使它正确显示?我尝试将字体设置为另一种字体,然后再次在脚本中返回,但是它什么也没显示。

0 个答案:

没有答案