IF条件下类实例的引用
本文关键字:引用 实例 条件下 IF | 更新日期: 2023-09-27 18:29:40
我有一个按几个状态组织的游戏,我想创建一些专用于这些状态的GUI组件。
我遇到的问题是创建一个IF条件来检查当前状态。
这是
public interface IStateBase
{
void StateUpdate();
void ShowIt();
}
}
这是类的实例(如果创建和管理)的位置:
public class StateManager : MonoBehaviour
{
public static IStateBase activeState;
void Start ()
{
activeState = new BeginState (this);
}
void Update ()
{
if (activeState != null)
activeState.StateUpdate();
}
void OnGUI()
{
if (activeState != null)
activeState.ShowIt(); }
public void ShowIt()
{
}
public void SwitchState(IStateBase newState)
{
activeState = newState;
}
}
这是我测试条件的地方,我试图比较字符串,但它不起作用。
public class PlayLevel1 : MonoBehaviour
{
private HydroElectric ec;
public static string a;
public PlayLevel1 ()
{
ec = new HydroElectric();
a = "PlayState";
}
public void OnGUI()
{
if (StateManager.activeState.ToString() == a) {
string test1;
GUI.Box (new Rect (Screen.width - 100, 20, 80, 40), test1.ToString ());
}
}
你知道如何编写if条件来检查activestate值吗?
如果PlayState
是实现IStateBase
的类,那么您可以检查StateManager.activeState
是否是PlayState
实例,如下所示:
if (StateManager.activeState is PlayState) { // ...
有关is
操作员的更多信息,请点击此处。