// Use this for initialization void Start() { fsm = new Core.FSM.FSM("PatrolDialogueNPCFSM"); moveState = fsm.AddState("MoveState"); idleState = fsm.AddState("IdleState"); dialogueState = fsm.AddState("DialogueState"); moveAction = new WaypointMoveAction(moveState); idleAction = new NPCIdleScoutAction(idleState); dialogueAction = new NPCDialogueAction(dialogueState); moveState.AddAction(moveAction); idleState.AddAction(idleAction); dialogueState.AddAction(dialogueAction); moveAction.Init(GetComponent <Rigidbody>(), gameObject.transform, movementSpeed, waypoints, "ToIdle"); idleAction.Init(3, gameObject.transform); dialogueAction.Init(this, dialogueIdentifier); idleState.AddTransition("ToDialogue", dialogueState); idleState.AddTransition("ToNextWaypoint", moveState); moveState.AddTransition("ToIdle", idleState); dialogueState.AddTransition("ToIdle", idleState); fsm.Start("MoveState"); }
// Use this for initialization void Start() { fsm = new Core.FSM.FSM("PatrolNPCFSM"); moveState = fsm.AddState("MoveState"); idleState = fsm.AddState("IdleState"); moveAction = new WaypointMoveAction(moveState); idleAction = new NPCIdleAction(idleState); moveState.AddAction(moveAction); idleState.AddAction(idleAction); moveAction.Init(GetComponent <Rigidbody>(), gameObject.transform, movementSpeed, waypoints, "ToIdle"); idleAction.Init(); idleState.AddTransition("ToNextWaypoint", moveState); moveState.AddTransition("ToIdle", idleState); fsm.Start("IdleState"); }