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); } } }
public void StopAI() { state = TankAIState.waiting; }
public void StartAI() { state = TankAIState.doing; currentMotionState.Start(); currentShootingState.Start(); }