Skip to content
This repository has been archived by the owner on Aug 14, 2019. It is now read-only.

StateMachinePseudo Abstract Code

Erik edited this page Apr 26, 2019 · 4 revisions
public abstract class CharStateData : Monobehaviour
{
	//derived classes should cache Monobehaviours and values
}

public abstract class StateController<T> : Monobehaviour where T:CharStateData
{
	//public abstract State<T> GetCurrentState();
	//public abstract State<T> GetRemainState();
	//public abstract Action<T> GetAction();
	//public abstract Decision<T> GetDecision();
	public State<T> currentState;
	public State<T> remainState;
	public Action<T>[] actions;
	public Decision<T>[] decisions;
	
	//etc.
}

public abstract class Action<T> : ScriptableObject where T:CharStateData
{
	public abstract void Act(T charStateData);
}

public abstract class Decision<T> : ScriptableObject where T:CharStateData
{
	public abstract bool Decide(T charStateData);
}
Clone this wiki locally