public static void NotifyNewInstance(StateMotor motor, State instance) { var s = GetAllStates(motor); if (!s.Contains(instance)) { s.Add(instance); } }
public static void DeleteInstance(StateMotor motor, State state) { var s = GetAllStates(motor); if (s.Contains(state)) { s.Remove(state); } Object.DestroyImmediate(state, true); }
public static List <State> GetAllStates(StateMotor motor) { if (StatesCache.ContainsKey(motor)) { return(StatesCache[motor]); } var path = AssetDatabase.GetAssetPath(motor); var found = AssetDatabase.LoadAllAssetsAtPath(path).OfType <State>().ToList(); StatesCache[motor] = found; return(found); }
public StateSelectorContent(StateMotor motor) { this.motor = motor; }
public MovementState GetCurrentState(StateMotor motor) { return(currentState == null ? (currentState = motor.GetDefaultState()) : currentState); }
private void OnEnable() { motor = (StateMotor)target; stateSelector = new StateSelectorContent(motor); }