如何在Unity3D中完全销毁或完成场景

时间:2017-05-19 11:14:43

标签: c# unity3d

我正在使用OnGUI功能并在场景中创建按钮。一个按钮用以下代码触发打开的旧场景:

SceneManager.LoadScene (3);

但是当新场景打开时,仍会显示按钮。我该如何预防?

1 个答案:

答案 0 :(得分:6)

  

我正在使用OnGUI功能并在场景中创建按钮。

我认为这总结了你的问题。我假设下面的脚本与创建按钮的方式类似。

public Texture btnTexture;
void OnGUI()
{
    if (!btnTexture)
    {
        Debug.LogError("Please assign a texture on the inspector")
        return;
    }
    if (GUI.Button(new Rect(10, 10, 50, 50), btnTexture))
        Debug.Log("Clicked the button with an image");

    if (GUI.Button(new Rect(10, 70, 50, 30), "Click"))
        Debug.Log("Clicked the button with text");

}

OnGUI函数将始终在每个帧的函数内创建按钮或UI控件。只要将新场景附加到GameObject,它就不会被加载。

加载新场景时,请检查该脚本是否附加到GameObject。我认为是。如果是,它将始终执行其中的代码。

请勿在Unity中使用OnGUI功能。开始使用Unity的新UI系统。 Here是一个Unity官方教程,可以帮助您开始使用它。您可以查看this帖子,了解如何从代码中检测新UI系统上的点击次数。