【问题标题】:Why are my GUI Buttons Triggering upon starting the game?为什么我的 GUI 按钮会在开始游戏时触发?
【发布时间】:2014-08-23 08:19:16
【问题描述】:

我一直在为我的游戏制作 GUI 菜单,我按照各种来源的说明进行操作,并按照统一网站的说明进行操作,我不确定我的某些代码是否不正确或者它是游戏引擎中的错误,但是当我点击播放按钮时触发附加到它们的代码而不点击它们:

#pragma strict

var guiSkin : GUISkin;
private var Options : boolean;
var OptionsGUI : GameObject;
var MenuGUI : GameObject;

function Start ()
{

}
function OnGUI()
{
    GUI.Box(Rect(200, 360, 400, 75)," ");
    GUI.skin = guiSkin;
    GUI.Button(Rect(200, 135, 400, 75),"P L A Y");
    GUI.Button(Rect(200, 210, 400, 75),"O P T I O N S");
    {
        SetOptions();
    }
    GUI.Button(Rect(200, 285, 400, 75),"I N S T R U C T I O N S");
    GUI.Button(Rect(200, 360, 400, 75),"A B O U T");
}
function SetOptions ()
{   
    OptionsGUI.GetComponent(options).enabled = true;
    MenuGUI.GetComponent(menu).enabled = false;
}

有人告诉我那里有C#,但我在项目中没有使用任何C#,如果有你能指定它在哪里吗?

【问题讨论】:

  • 这是什么语言?看起来不像普通的 JavaScript。这是 UnityScript 还是什么?
  • 这看起来一点也不像 JavaScript,从它和 C# 的提及来看,我会说你正在使用 Unity。如果是这样,请相应地标记您的问题

标签: unity3d unityscript


【解决方案1】:

如果你在谈论你的 GUI.Button "O P T I O N S",问题是:你需要使用 "If" 语句,因为下面的代码会一直执行:

GUI.Button(Rect(200, 210, 400, 75),"O P T I O N S");
{
    SetOptions();
}

正确的做法是:

if(GUI.Button(Rect(200, 210, 400, 75),"O P T I O N S"))
{
   SetOptions();
}

【讨论】:

    猜你喜欢
    • 2023-01-10
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 2018-02-01
    相关资源
    最近更新 更多