/// <summary>
 /// 初始化坦克攻击组件
 /// </summary>
 private void InitTankAttack(TankManager tank, TankModuleHead head)
 {
     TankModuleHead.AttackProperties properties = head.attackProperties;
     tank.tankAttack = tank.GetComponentInChildren <TankAttack>();
     if (tank.tankAttack == null)
     {
         Debug.LogError("Tank Head Need 'TankAttack' Component!");
         return;
     }
     tank.stateController.attackManager = tank.tankAttack;
     tank.tankAttack.forceSlider        = tank.GetComponent <TankManager>().aimSlider;
     tank.tankAttack.chargingClip       = properties.chargingClip;
     tank.tankAttack.fireClip           = properties.fireClip;
     tank.tankAttack.ResetSliderValue(properties.minLaunchForce, properties.maxLaunchForce, properties.maxChargeTime);
     tank.tankAttack.damage       = properties.damage;
     tank.tankAttack.coolDownTime = properties.coolDownTime;
     tank.tankAttack.CDTimer.Reset(properties.coolDownTime);
     System.Type type = tank.tankAttack.GetType();
     if (type == typeof(TankAttackShooting))
     {
         TankAttackShooting attack = tank.tankAttack as TankAttackShooting;
         //attack.ammoPool = head.attackProperties.ammoPool;
         attack.ammoSpawnPoint = new Point(head.ammoSpawnPoint);
     }
     else if (type == typeof(TankAttackBoxing))
     {
         TankAttackBoxing attack = tank.tankAttack as TankAttackBoxing;
         attack.springBoxingGlove = headObj.GetComponentInChildren <SpringBoxingGloveManager>();
         attack.launchDistance    = new AnimationCurve(new Keyframe(0, 0, 0, 3.5f), new Keyframe(0.3f, 1, 0, 0));
     }
 }