|
- using System;
- using UnityEngine;
-
- public class State : MonoBehaviour
- {
- public FiniteStateMachine fsm
- {
- get
- {
- return this._fsm;
- }
- set
- {
- this._fsm = value;
- }
- }
-
- public virtual void Init()
- {
- this.View.Init();
- }
-
- public virtual void Enter(State oldState, bool openView)
- {
- this._isInState = true;
- if (openView)
- {
- this.View.Open(oldState);
- }
- }
-
- public virtual void Enter(State oldState)
- {
- this.Enter(oldState, true);
- }
-
- public virtual void Leave(State newState, bool closeView)
- {
- this._isInState = false;
- if (closeView)
- {
- this.View.Close(newState);
- }
- }
-
- public virtual void Leave(State newState)
- {
- this.Leave(newState, true);
- }
-
- private void Update()
- {
- if (this._isInState)
- {
- this.OnUpdate();
- }
- }
-
- protected virtual void OnUpdate()
- {
- }
-
- public virtual bool IsHUDState
- {
- get
- {
- return false;
- }
- }
-
- public GUIView View;
-
- protected FiniteStateMachine _fsm;
-
- protected bool _isInState;
- }
|