Advertisement
infinite_ammo

StateMachine.cs

Apr 4th, 2012
550
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.56 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class StateMachine<T> : MonoBehaviour
  5. {
  6.     private T _t;
  7.     private T _stateToSet;
  8.     public T state
  9.     {
  10.         get { return _t; }
  11.         set
  12.         {
  13.             OnStateExit();
  14.             _t = value;
  15.             OnStateEnter();
  16.         }
  17.     }
  18.  
  19.     public void CueState(T state, float time)
  20.     {
  21.         CancelInvoke("InternalSetState");
  22.         _stateToSet = state;
  23.         Invoke("InternalSetState", time);
  24.     }
  25.  
  26.     protected virtual void OnStateEnter()
  27.     {
  28.     }
  29.  
  30.     protected virtual void OnStateExit()
  31.     {
  32.     }
  33.  
  34.     private void InternalSetState()
  35.     {
  36.         state = _stateToSet;
  37.     }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement