如何自动调整textmesh上的文本

时间:2016-11-22 23:06:13

标签: unity3d

如何在 LocationSide1.GetComponent<TextMesh>().text = "1"; LocationSide2.GetComponent<TextMesh>().text = "2"; LocationSide3.GetComponent<TextMesh>().text = "3"; LocationSide4.GetComponent<TextMesh>().text = "4"; LocationSide5.GetComponent<TextMesh>().text = "5"; LocationSide6.GetComponent<TextMesh>().text = "6"; 上自动调整文字大小。

我有六个方面的骰子,我想说出来。单词会不断变化,所以我需要根据立方体的大小自动调整大小,这不会改变。

骰子不是UI元素,因此位于画布之外。

以下是我添加文字的方法。

{{1}}

想象一下,我希望骰子说'#34; pickle&#34;而不是6.它可能会说下一个角色&#34; cantaloupe&#34;然后&#34;豌豆&#34;。文本将改变大小。

示例文字如何粘在边缘上。

enter image description here

2 个答案:

答案 0 :(得分:1)

您寻求的答案可以在另一个帖子中找到 - http://answers.unity3d.com/questions/218222/how-to-calculate-a-textmesh-width-without-renderin.html

         public class TextBehaviour : MonoBehaviour
         {
             public  TextMesh textmesh;
             void Start () 
             {

                 Bounds bound = BoundOfTextMesh("New Text");    
                 print ("Size  X = "+bound.size.x +"Size Y = "+bound.size.y);// Size of  X and Y or Vector2

             }

             Bounds BoundOfTextMesh(string textMeshName)
             {
                 textmesh = GameObject.Find (textMeshName).GetComponent<TextMesh>();
                 return textmesh.renderer.bounds ;
             }
         }

答案 1 :(得分:-1)

TextMesh没有自动调整大小的功能,因此要调整文本大小以适应其容器,您必须遵循Scott Barnes&#39;建议操纵渲染器以获得所需的效果。

如果您正在寻找具有您正在寻找效果的替代品,您可以考虑TextMesh Pro。它是Unity商店中具有自动调整大小功能的免费资产。该文本有2D UI和3D文本格式,因此它可以在画布的内部和外部工作。

TextMesh Pro Auto-Sizing Video