Skip to content

Instantly share code, notes, and snippets.

@SteveSwink
Created January 25, 2013 01:20
Show Gist options
  • Save SteveSwink/4630717 to your computer and use it in GitHub Desktop.
Save SteveSwink/4630717 to your computer and use it in GitHub Desktop.
State class to go with Sven's state system
using UnityEngine;
using System.Collections;
using System;
//wont show up because its a ScriptableObject
[AddComponentMenu("LD24/State")]
[Serializable]
public class _State : ScriptableObject {
//Defaults are blank
public string _name = "";
public stateChangeHandler onExitHandler = null;
public stateChangeHandler onEnterHandler = null;
public stateUpdateHandler onUpdateHandler = null;
public _State() {
}
public _State(GameObject parent, stateChangeHandler _onEnter, stateChangeHandler _onExit, stateUpdateHandler _onUpdate) {
onEnterHandler = _onEnter;
onExitHandler = _onExit;
onUpdateHandler = _onUpdate;
}
public virtual void onEnter( _State previous, Transform parent ) {
//Debug.Log ("Entering state " + previous._name + " from " + _name);
if( onEnterHandler != null ) onEnterHandler(previous, parent);
}
public virtual void onExit( _State target, Transform parent ) {
//Debug.Log ("Leaving state to " + target._name + " from " + _name);
if( onExitHandler != null ) onExitHandler(target, parent);
}
public virtual void onUpdate( Transform parent = null ) {
//Debug.Log ("update !" + _name);
if( onUpdateHandler != null ) onUpdateHandler( parent );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment