public void GameState() { GameStateMachine.CreateSingleton(); var state = new TestForGameState(); GameStateMachine.Instance.RegisterGameState(state); Assert.AreEqual(false, state.Entered); GameStateMachine.Instance.ChangeState(typeof(TestForGameState)); Assert.AreEqual(true, state.Entered, "状态没有正确进入"); Assert.AreEqual(0, state.Counter); GameStateMachine.Instance.UpdateLogic(0); Assert.AreEqual(1, state.Counter, "没有正确执行UpdateLogic"); GameStateMachine.Instance.UpdateFrame(0); Assert.AreEqual(3, state.Counter, "没有正确执行UpdateFrame"); GameStateMachine.DestroySingleton(); Assert.AreEqual(false, state.Entered, "状态没有正确退出"); }