Exemplo n.º 1
0
    // Update is called once per frame
    protected override void Update()
    {
        if (!IsIt)
        {
            decisionTree.Evaluate();
        }

        else
        {
            finiteStateMachine.Evaluate();
        }

        if (Manager.NavMesh)
        {
            if (behaviour != previous_behaviour || this.GetComponent <NavMeshAgent>().velocity.magnitude == 0)
            {
                previous_behaviour = behaviour;

                //DebugDecision();

                switch (behaviour)
                {
                case BEHAVIOUR_TYPE.WANDER: WanderUpdate(); break;

                case BEHAVIOUR_TYPE.MOVE_TO_LAST_SPOTTER: MoveToLastSpotterUpdate(); break;

                case BEHAVIOUR_TYPE.FLANK: FlankUpdate(); break;

                case BEHAVIOUR_TYPE.TAGGING: TaggingUpdate(); break;

                case BEHAVIOUR_TYPE.EVADE: RunAwayUpdate(); break;

                case BEHAVIOUR_TYPE.TURN_AROUND: TurnAroundUpdate(); break;
                }
            }
        }

        else
        {
            switch (behaviour)
            {
            case BEHAVIOUR_TYPE.WANDER: WanderUpdate(); break;

            case BEHAVIOUR_TYPE.MOVE_TO_LAST_SPOTTER: MoveToLastSpotterUpdate(); break;

            case BEHAVIOUR_TYPE.FLANK: FlankUpdate(); break;

            case BEHAVIOUR_TYPE.TAGGING: TaggingUpdate(); break;

            case BEHAVIOUR_TYPE.EVADE: RunAwayUpdate(); break;

            case BEHAVIOUR_TYPE.TURN_AROUND: TurnAroundUpdate(); break;
            }
        }
    }
Exemplo n.º 2
0
 private void SetTurnAround()
 {
     behaviour = BEHAVIOUR_TYPE.TURN_AROUND;
 }
Exemplo n.º 3
0
 private void SetStayPut()
 {
     behaviour = BEHAVIOUR_TYPE.NULL;
 }
Exemplo n.º 4
0
 private void SetRunAway()
 {
     behaviour = BEHAVIOUR_TYPE.EVADE;
 }
Exemplo n.º 5
0
 private void SetTagging()
 {
     behaviour = BEHAVIOUR_TYPE.TAGGING;
 }
Exemplo n.º 6
0
 private void SetFlank()
 {
     behaviour = BEHAVIOUR_TYPE.FLANK;
 }
Exemplo n.º 7
0
 private void SetMoveToLastSpotter()
 {
     behaviour = BEHAVIOUR_TYPE.MOVE_TO_LAST_SPOTTER;
 }
Exemplo n.º 8
0
 private void SetWander()
 {
     behaviour = BEHAVIOUR_TYPE.WANDER;
 }