C# 在Unity中实例化动态文本

C# 在Unity中实例化动态文本,c#,unity3d,text,C#,Unity3d,Text,当我在游戏中收集加电时,我想在加电位置实例化动态文本(例如“导弹”或“盾牌”),但我的代码不起作用 这是我的功能(我承认它有点混乱): 看起来您没有设置正确的文本。您正在为upgradetxtpresprefab设置文本,但是您实例化了tempugradetxt 它应该是tempUpgradeTxt.text=\u upgradeTxt你所说的“不工作”到底是什么意思?文本没有显示。所以没有创建游戏对象?文本没有改变?请详细说明游戏对象已创建,但我无法在屏幕上看到文本。我按您所说的那样更改了它,

当我在游戏中收集加电时,我想在加电位置实例化动态文本(例如“导弹”或“盾牌”),但我的代码不起作用

这是我的功能(我承认它有点混乱):


看起来您没有设置正确的文本。您正在为
upgradetxtpresprefab
设置文本,但是您实例化了
tempugradetxt


它应该是
tempUpgradeTxt.text=\u upgradeTxt

你所说的“不工作”到底是什么意思?文本没有显示。所以没有创建游戏对象?文本没有改变?请详细说明游戏对象已创建,但我无法在屏幕上看到文本。我按您所说的那样更改了它,但仍然无法看到文本。在运行时创建文本对象时,检查并查看检查器中的文本字段是否包含文本?确定。文本在那里。这个职位似乎有问题。在inspector中,它表示x=-563和y=-906。它们不在可见屏幕上。我该如何解决这个问题?也许可以尝试将位置设置为画布的位置,然后看看它放在哪里?我也会删除你正在改变预制件位置的那一行。我删除了两行带有位置的代码,并更新了我的代码。这个位置仍然很奇怪,我不知道是什么原因造成的。
public Text upgradeTxtPrefab;

void ShowUpgradeTxt (string _upgradeTxt) {

        // find canvas
        GameObject canvas = GameObject.Find("Canvas");

        Text tempUpgradeTxt = (Text)Instantiate (upgradeTxtPrefab);

        tempUpgradeTxt.fontSize = 24;

        tempUpgradeTxt.transform.position = this.transform.position;

        tempUpgradeTxt.transform.SetParent (canvas.transform, false);

        upgradeTxtPrefab.text = _upgradeTxt;

}