c# - Unity 中不显示实例化的 2D 文本
问题描述
请原谅我的任何语法错误。(我知道这里有很多这样的问题,但我还没有找到解决方案)。
我正在尝试使用 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”方法的调用,并将其放入附加到我正在实例化的对象的脚本中。我找到了解决方案,但我不明白为什么会出现问题。
解决方案
如果没有其他信息,很难找出您的问题。可能的解决方案是使用 Transform.SetParent 方法并将 worldPositionStays 参数设置为 false,而不是在父变换上实例化。您可以在Unity 文档中找到类似问题的故障排除。请参阅实例化 UI 元素部分。
推荐阅读
- javascript - 单击后如何显示和隐藏按钮?
- python - os.listdir() not showing contents of directory
- java - What is the best place to place a Comparator Class in Java
- javascript - 尝试将用打字稿编写的类导入显示错误的javascript NodeJs
- android-night-mode - AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM 的设置如何与 getResources().getConfiguration().uiMode 的结果相关联
- android - Android 上的蓝牙
- javascript - JavaScript 令人费解的输出
- jquery - How do I use jQuery selectors to iterate through unordered lists independently?
- twilio - 使用 REST API 在 Flow 中更新 Twilio“发送消息”消息体
- python - Python:如何将数字映射到列中的唯一项目(枚举唯一对象)?