public void SetPreviousState()
 {
     state = previousState;
 }
 public SaveableAgent(Vector3 position, StateMachineEnum currentState)
 {
     this.position     = new SerializableVector3(position);
     this.currentState = currentState;
 }
 // Public
 public void SetState(StateMachineEnum nextState)
 {
     previousState = state;
     state         = nextState;
 }
 // Editor Event Actions
 public void Chase()
 {
     previousState = state;
     state         = StateMachineEnum.CHASE;
 }
示例#5
0
		public void runStateMachine(StateMachineEnum statemachine)
		{
			if (m_StateMachineImpl == null)
				return;
		
			List<StateData> activeStateArray = new List<StateData>();
			if(m_StateMachineImpl.GetCurrentStates(activeStateArray) > 0)
				return;
			switch (statemachine) 
			{
				case StateMachineEnum.DriveDistance_ENUM_DRIVEDISTANCESM:
					{
						const int nArrayCount = 1;
						EntryEnum[] entryArray = new EntryEnum[] {EntryEnum.DriveDistance_ENUM_DRIVEDISTANCESM_INITIAL_10};
						runStateMachine(statemachine, null, null, entryArray, nArrayCount);	//submachineState is NULL if run standalone statemachine 
					}
					break;
			}
		}
示例#6
0
		private void runStateMachine(StateMachineEnum statemachine, StateData submachineState, Signal signal, EntryEnum[] entryArray, int nEntryCount)
		{
			if (m_StateMachineImpl == null)
				return;
		
			if(submachineState == null)
			{
				StateInitialData initialData = new StateInitialData((int)StateEnum.DriveDistance_VIRTUAL_SUBMACHINESTATE, (int)StateEnum.NOSTATE, 1, false, "DriveDistance_VIRTUAL_SUBMACHINESTATE", ""); 
				submachineState = new StateData(m_StateMachineImpl, initialData);
				submachineState.IncrementActiveCount();
				m_StateMachineImpl.GetStateData().Add(submachineState);
			}
			switch (statemachine) 
			{
				case StateMachineEnum.DriveDistance_ENUM_DRIVEDISTANCESM:
					{
						const int nArrayCount = 2;
						StateInitialData[] initialDataArray = new StateInitialData[nArrayCount]
							{
								new StateInitialData((int)StateEnum.DriveDistance_ENUM_DRIVEDISTANCESM_FORWARDSTATE, (int)StateEnum.NOSTATE, 0, false, "DriveDistance_DriveDistanceSM_ForwardState", "{7C4E3CFB-F8EA-4d72-83D7-1257A76F1FFF}"),
								new StateInitialData((int)StateEnum.DriveDistance_ENUM_DRIVEDISTANCESM_STOPSTATE, (int)StateEnum.NOSTATE, 0, false, "DriveDistance_DriveDistanceSM_StopState", "{EB0BB228-E76D-4701-B2F9-04C5EC06EC50}")
							};
		
						m_StateMachineImpl.CreateStateObjects(initialDataArray, nArrayCount, submachineState);
					}
					for(int i = 0; i < nEntryCount; i++)
					{
						switch(entryArray[i])
						{
						case EntryEnum.DriveDistance_ENUM_DRIVEDISTANCESM_INITIAL_10:
							TransitionProc(TransitionEnum.DriveDistance_ENUM_INITIAL_10__TO__FORWARDSTATE_5, signal, submachineState);
							break;
						}
					}
					if(submachineState.IsActiveState())
						m_StateMachineImpl.deferInternalEvent(EventEnum.COMPLETION, null, submachineState);
					break;
			}
	
		}
示例#7
0
		private void runStateMachine(StateMachineEnum statemachine, StateData submachineState, Signal signal)
		{
			runStateMachine(statemachine, submachineState, signal, null, 0);
		}