在3D文本中更改文本不会起作用

时间:2016-10-25 16:09:45

标签: c# unity3d

我正在尝试更改TextMesh中的文字。但是,我尝试了很多东西,但由于某些原因它不会发生变化。我这样做的方式是:

public TextMesh text;
public int count;

void Start () {
    count = 0;
    text= gameObject.AddComponent<TextMesh>();
    text.text = "Counter: " + count.ToString();
}

当我跑的时候保持不变。它与我在编辑器中Text Mesh中编写的文本相同。我有2个3D文本,但我也试过gameObject.Find("CounterText"),但这也没有帮助。

1 个答案:

答案 0 :(得分:1)

  

MissingComponentException:没有&#39; TextMesh&#39;附在&#34; Can   (1)&#34;游戏对象,但脚本正试图访问它。

这只是意味着您的问题中的脚本附加到附加了TextMesh组件的GameObject。

gameObject.AddComponent<TextMesh>(); or AddComponent<TextMesh>();

只会访问附加脚本的GameObject上的组件。

创建一个GameObject,选择它,转到组件 - &gt; 网格 - &gt; 文字网格。将文字网格修改为您喜欢的内容。

执行以下操作之一:

1 。使用Text Mesh组件将下面的脚本附加到该GameObject。

public TextMesh text;
public int count;

void Start()
{
    count = 0;
    text = gameObject.GetComponent<TextMesh>();
    text.text = "Counter: " + count.ToString();
}

2 。找到附加Text Mesh组件的GameObject  然后从中获取Text Mesh组件。您可以将下面的脚本附加到任何GameObject,它将起作用。只需确保将GameObjectTextMeshIsAttachedTo更改为TextMesh组件所附加的GameObject名称。

public TextMesh text;
public int count;

void Start()
{
    count = 0;
    text = GameObject.Find("GameObjectTextMeshIsAttachedTo").GetComponent<TextMesh>();
    text.text = "Counter: " + count.ToString();
}