Ejemplo n.º 1
0
        public void Init(TankAIState _state)
        {
            state = _state;
            tank.motion.SetInstruction(instruction);
            tank.weapon.Init(instruction);
            sensoringSimulator = GameObject.Find("MainGameAI").GetComponent <SensoringSimulator>();


            currentMotionState   = MotionStates[(int)MotionStateIndices.going];
            currentShootingState = ShootingStates[(int)ShootingStateIndices.notShooting];

            tankStateInfo_motion = new TankStateInfo
            {
                instruction          = this.instruction,
                tank                 = this.tank,
                AvailableStates      = this.MotionStates,
                AvoidingTendencies   = this.intruderDetector.GetTendencies(),
                destinationPosition  = this.DestinationPosition,
                destinationTransform = this.destinationTransform
            };

            for (int i = 0; i < MotionStates.Length; i++)
            {
                if (MotionStates[i] != null)
                {
                    MotionStates[i].Init(tankStateInfo_motion);
                }
            }

            tankStateInfo_shooting = new TankStateInfo
            {
                instruction     = this.instruction,
                tank            = this.tank,
                AvailableStates = this.ShootingStates,
                targetTank      = this.TargetTank,
                targetTransform = this.TargetTransform
            };

            for (int i = 0; i < ShootingStates.Length; i++)
            {
                if (ShootingStates[i] != null)
                {
                    ShootingStates[i].Init(tankStateInfo_shooting);
                }
            }
        }
Ejemplo n.º 2
0
 public void StopAI()
 {
     state = TankAIState.waiting;
 }
Ejemplo n.º 3
0
 public void StartAI()
 {
     state = TankAIState.doing;
     currentMotionState.Start();
     currentShootingState.Start();
 }