【问题标题】:How do I remove a GUI object(s) in unity C#?如何在统一 C# 中删除 GUI 对象?
【发布时间】:2012-05-29 14:08:16
【问题描述】:

我有一个可控角色,当你从地图上掉下来时,会创建一个带有重生按钮的 GUI

        void OnGUI() {
        if(died==true){
        GUI.Label(new Rect(daX, daY, 200, 40), "You died!!");
        GUI.Label(new Rect(daX, daY-40, 200, 40), whyDie);
        if (GUI.Button(new Rect(daX-75, daY+50, 150, 30), "Respawn!!!")){
            transform.position = new Vector3(-5,20,5);
        }
        if (GUI.Button(new Rect(daX-75, daY+100, 150, 30), "Screw This!!!")){
            Debug.Log("Back to menu");
        }
    }
 }

重生和其他东西有效,只是我不知道如何摆脱 GUI,所以重生后重生按钮会停留在那里。有谁知道如何删除 GUI 对象?提前致谢

*EDIT: dead, daX, day, whyDie 是我创建的变量并且是有效的

【问题讨论】:

    标签: c# user-interface unity3d


    【解决方案1】:

    只需将您的 dead 变量设置回 false,就不会进行 GUI 调用。

    void OnGUI()
    {
       if(died)
       {
            GUI.Label(new Rect(daX, daY, 200, 40), "You died!!");
            GUI.Label(new Rect(daX, daY-40, 200, 40), whyDie);
    
            if (GUI.Button(new Rect(daX-75, daY+50, 150, 30), "Respawn!!!"))
            {
                transform.position = new Vector3(-5,20,5);
                died = false; //Stop drawing died interface
            }
    
            if (GUI.Button(new Rect(daX-75, daY+100, 150, 30), "Screw This!!!"))
            {
                Debug.Log("Back to menu");
                Application.LoadLevel(0); //Load your first scene, where the menu is.
            }
        }
     }
    

    或者,您可以禁用组件/游戏对象。这样你的整个 OnGUI 方法就不会被调用了。

    【讨论】:

    • 题外话:Unity3D-GUI是我见过的最糟糕的
    • 它适用于小而简单的原型。但是对于较大的项目我同意,但是有很棒的插件(NGUI!)。
    猜你喜欢
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 2016-01-31
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    相关资源
    最近更新 更多