【发布时间】:2018-08-12 19:02:05
【问题描述】:
如有任何语法错误,请见谅。 (我知道这里有很多这样的问题,但我还没有找到解决方案。
我正在尝试使用 2d 文本实例化 2d 对象,这里的问题是文本在实例化时是不可见的。是的,我知道我必须将画布设置为它的父级,但它仍然无法正常工作...... 代码:
Instantiate(levelAsteroid, new Vector3(-7, 2.25f, 0), Quaternion.identity,
GameObject.FindGameObjectWithTag ("Canvas").transform);
Unity层次结构,当对象实例化时:
画布设置:
更新: 我想我找到了问题所在。 如果我只是实例化对象,它可以正常工作,文本是可见的,但是如果我尝试从脚本中更改文本,文本就会损坏,之后即使我放置对象,文本也不会出现手动在画布中。
已修复: 问题似乎是我用来更改文本的方式.. 以前,我用来实例化对象并从附加到 GameController 的脚本中更改文本,现在我从附加到以文本为子对象的对象的脚本中更改文本。
之前: (附在 GameController 上的脚本):
public GameObject exampleOfObj;
void instantiateObj(){
object = Instantiate(exampleOfObj, new Vector3(-800, 300f, 0), Quaternion.identity);
object.transform.SetParent (GameObject.FindGameObjectWithTag ("Canvas").transform, false);
objectText.SetText ("Text: " + value);
}
我只是删除了对“SetText”方法的调用,并将其放入附加到我正在实例化的对象的脚本中。 我找到了解决方案,但我不明白为什么会出现问题。
【问题讨论】:
-
只需将
false传递给实例化函数 -
我已经完成了,但没有任何改变......而且这个问题不是重复的
-
您的 Text 对象上是否有任何 Animator 组件?
标签: c# unity3d 2d instantiation