Esempio n. 1
0
    void Start()
    {
        //Load the states and transitions into the FSMLoader
        loader = GetComponent <FSMLoader>() as FSMLoader;
        loader.InitialiseLoader();

        //Store references to commonly used components
        motorActions     = GetComponent <AIMotorActions>() as AIMotorActions;
        conditionChecker = GetComponent <AIConditionChecker> () as AIConditionChecker;
        parentTransform  = this.transform.parent;

        //Instantiate the root FSM
        GameObject FSMObject = Instantiate(FSMPrefab, parentTransform.position, parentTransform.rotation);

        FSMObject.transform.SetParent(this.transform.parent);
        rootFSM = FSMObject.GetComponent <FSM> () as FSM;
        rootFSM.InitialiseFSM(loader.GetStartingStateName(), loader, motorActions, conditionChecker, parentTransform);
    }
Esempio n. 2
0
    public void InitialiseFSM(string startingState, FSMLoader load, AIMotorActions aiM, AIConditionChecker aiC, Transform parentT)
    {
        loader      = load;
        activeState = loader.GetState(startingState);

        motorActions     = aiM;
        conditionChecker = aiC;
        parentTransform  = parentT;

        fsmCounter        = new FSMCounter();
        fsmCounter.timer  = 0f;
        fsmCounter.frames = 0;

        if (activeState.GetAction() == Action.RUN_SUB_FSM)
        {
            SpawnFSMStartingWithState(activeState.GetStartingSubstate());
        }
    }