如何在Unity中解决这个奇怪的问题?

时间:2019-07-13 14:46:21

标签: c# unity3d

我的问题是:

UI元素不会显示在“游戏视图”和“场景”视图中,在场景视图中,我只能看到元素的边框。

除了TextMeshPro,它可以正常工作,但由于某种原因其他所有内容都不会显示。

我试图创建另一个Canvas,但又发生了同样的事情。

详细信息:

我已经开始了一个新项目,并且一切都与预期的一样,UI元素显示得很好,但是尽快,我这样做了(请阅读下文)……事情变得疯狂了!

正如我之前所说,一切正常,但是一旦使用下面的脚本创建简单的按钮,然后按“播放”按钮,我将不再能看到任何UI元素和TextMeshPro元素。 / p>

即使我再次按下“播放”按钮以退出游戏模式,UI元素仍然表现异常。

对不起,英语不好,我真的想多解释一下,只是我对发生的事情一无所知!!

Canvas Image

更新:

  •   

    所以我刚刚发现这一行:

         

    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);
    }
}

0 个答案:

没有答案