protected override void OnFSMStateComplete(FSMState completedState) { base.OnFSMStateComplete(completedState); if (completedState.StateID == FSMStateTypes.AI.MOVE) { if (_nextMoveTag == "collect") { _targetRoad.Collect(this); _targetSafeZone = GameManager.Instance.FindNearestSafeZone(transform.position); _nextMoveTag = "dropoff"; SetState(new AIMoveAction(_targetSafeZone.transform.position, 0.25f)); } else if (_nextMoveTag == "dropoff") { SetState(new AIWaitAction(2f)); _nextMoveTag = "home"; } else if (_nextMoveTag == "home") { Wander(); } } if (completedState.StateID == FSMStateTypes.AI.WAIT) { ReturnHome(); } }