【问题标题】:How do I show a gui.button after clicking on a specific object or disable gui.button until after click?如何在单击特定对象后显示 gui.button 或禁用 gui.button 直到单击后?
【发布时间】:2014-02-11 09:27:34
【问题描述】:

到目前为止,我有这个脚本:

Using UnityEngine;
using System.Collections;

public class text : MonoBehaviour {

public GameObject mainCam; 

public bool showButton = false;



void OnGUI () {



// Make a background box
GUI.Box(new Rect(10,10,230,150), "Menu");


if (GameObject.Find("block1") && Input.GetMouseButtonDown(0)) { 

showButton = true; 

if(GUI.Button (new Rect (30,40,200,70), "Back to the blocks ")) {

print ("You clicked the button! The menu now appears");

mainCam.transform.position= new Vector3(-.13f, 0.87f, -8);

Camera.main.orthographicSize = 0.4f;



    }

} 
}
}

当视图位于多个块上时,我希望按钮被禁用或不活动,然后当我单击一个块并将我带到其中一个块的放大视图时,我希望 gui.button 出现.然后,如果我返回所有块的主视图,我希望再次禁用该按钮。我不知道该怎么做。

【问题讨论】:

    标签: c# button user-interface unity3d onmousedown


    【解决方案1】:

    您没有在以下任何条件下使用 showButton boolean 编辑脚本可能对您有用

       public class text : MonoBehaviour {
    
    public GameObject mainCam; 
    
    public bool showButton = false;
    
    
    
    void OnGUI () {
    
    
    
    // Make a background box
    GUI.Box(new Rect(10,10,230,150), "Menu");
    
    
    if (GameObject.Find("block1") && Input.GetMouseButtonDown(0)) { 
    
    showButton = true; 
    
    if(GUI.Button (new Rect (30,40,200,70), "Back to the blocks ") && showButton) {//check showButton
    showButton = false;// when you want go back to blocks then make it false
    print ("You clicked the button! The menu now appears");
    
    mainCam.transform.position= new Vector3(-.13f, 0.87f, -8);
    
    Camera.main.orthographicSize = 0.4f;
    
    
    
        }
    
    } 
    }
    }
    

    【讨论】:

    • 出于某种原因,它只是禁用了一切。即使我检查它是否处于活动状态,showButton 的复选框也不起作用:/ 这很奇怪。
    • 其实有一个有趣的地方需要注意:mainCam总是设置在一个特定的坐标上,所以我做的是: void Update() { if (mainCam.transform.position == new Vector3( 0, 1.1f, -8)) { GUI.enabled = false; } } 并且此视图仅适用于主相机位于某个位置时,这在逻辑上应该可以工作,但由于某种原因,GUI 未被禁用。
    猜你喜欢
    • 2016-03-16
    • 2023-03-29
    • 1970-01-01
    • 2018-06-07
    • 1970-01-01
    • 2018-03-21
    • 2014-06-15
    • 2022-11-12
    • 2019-12-29
    相关资源
    最近更新 更多