我的问题是:
UI元素不会显示在“游戏视图”和“场景”视图中,在场景视图中,我只能看到元素的边框。
除了TextMeshPro,它可以正常工作,但由于某种原因其他所有内容都不会显示。
我试图创建另一个Canvas,但又发生了同样的事情。
我已经开始了一个新项目,并且一切都与预期的一样,UI元素显示得很好,但是尽快,我这样做了(请阅读下文)……事情变得疯狂了!
正如我之前所说,一切正常,但是一旦使用下面的脚本创建简单的按钮,然后按“播放”按钮,我将不再能看到任何UI元素和TextMeshPro元素。 / p>
即使我再次按下“播放”按钮以退出游戏模式,UI元素仍然表现异常。
对不起,英语不好,我真的想多解释一下,只是我对发生的事情一无所知!!
所以我刚刚发现这一行:
button.AddComponent<Image>().material.color = LevelManager.Instance.levels[0].levelColors[i];
由于某种原因导致此问题,我想将其报告给 团结。
我更改为:
button.AddComponent<Image>().material.color = Color.black
仅出于测试原因,并且使整个用户界面元素变黑。
// GameManager脚本
公共转换按钮保持器;
private void Start()
{
int levelIndex = 2;
for (int i = 0; i < levelIndex; i++)
{
GameObject ButtonParent = new GameObject("ButtonParent: " + (i + 1));
ButtonParent.AddComponent<RectTransform>();
ButtonParent.AddComponent<CanvasRenderer>();
ButtonParent.transform.SetParent(buttonsHolder, false);
ButtonParent.transform.localScale = new Vector3(3f, 1.5f, 1);
GameObject button = new GameObject("Button: " + (i + 1));
button.AddComponent<RectTransform>();
button.AddComponent<CanvasRenderer>();
button.AddComponent<Image>().material.color = LevelManager.Instance.levels[0].levelColors[i];
button.AddComponent<Button>();
Button tempButton = button.GetComponent<Button>();
int tempInt = i;
tempButton.onClick.AddListener(() => ReturnButtonColor(tempInt));
button.transform.SetParent(ButtonParent.transform, false);
}
}