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

Nur*_*lik 1 c# unity-game-engine

我正在使用OnGUI函数并在场景中创建按钮.并且一个按钮使用以下代码触发打开的旧场景:

SceneManager.LoadScene (3);
Run Code Online (Sandbox Code Playgroud)

但是当新场景打开时,仍会显示按钮.我怎么能阻止它?

Pro*_*mer 7

我正在使用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");

}
Run Code Online (Sandbox Code Playgroud)

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

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


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