我似乎无法在我的游戏窗口中显示一个按钮。有人可以向我解释为什么会这样吗?它只出现在一帧然后在我能看到它之前快速消失吗?或者它根本就没有出现?
我的州长。
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));
}
}
}
}
答案 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脚本附加到场景中的摄像头。我遇到了同样的问题,这是我的解决方案。