无法显示按钮

时间:2014-08-06 23:05:54

标签: c# unity3d unityscript

我似乎无法在我的游戏窗口中显示一个按钮。有人可以向我解释为什么会这样吗?它只出现在一帧然后在我能看到它之前快速消失吗?或者它根本就没有出现?

我的州长。

using UnityEngine;
using Assets.Code.States;
using Assets.Code.Interfaces;

public class StateManager : MonoBehaviour 
{
private IStateBase activeState;

void Start()
{
    activeState = new BeginState(this);

}

void Update()
{
    if (activeState != null)
                    activeState.StateUpdate ();
}
void OnGUI()
{ 
    if (activeState != null)
                    activeState.ShowIt ();

    }


public void SwitchState(IStateBase newState)
{
    activeState = newState;

}
}

我的第一个州。

using UnityEngine;
using Assets.Code.Interfaces;

namespace Assets.Code.States
{
public class BeginState:IStateBase 
{
    private StateManager manager;

    public BeginState(StateManager managerRef)   //Constructor
    {
        manager = managerRef;
        Debug.Log ("Constructing BeginState");
    }
    public void StateUpdate()
    {
        if (Input.GetKeyUp (KeyCode.Space)) {
                            manager.SwitchState (new PlayState (manager));
                    }
            }
    public void ShowIt()
    {
        if (GUI.Button (new Rect (10, 10, 150, 100), "Press to play")) 
        {
            manager.SwitchState(new PlayState (manager));
                    }

            }

}
}

2 个答案:

答案 0 :(得分:0)

试试这个 将此脚本附加到相机:

public class Examplebutton : MonoBehaviour {

    void OnGUI() {

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

    }
}

Gui必须与Guilayer相连,并且必须无效OnGUI()

答案 1 :(得分:0)

您需要将Statemanager.cs脚本附加到场景中的摄像头。我遇到了同样的问题,这是我的解决方案。