/// <summary> /// 砲台制御機能切り替え /// </summary> public void SetTurretController(ITurretController turretController) { this.turretController = turretController; (SceneChanger.currentScene as BattleSceneBase)?.OnSetTurretController(this.turretController); if (this.turretController == null) { this.stateManager.ChangeState<NormalState>(); } else { this.stateManager.ChangeState<TurretControllerState>(); } }
/// <summary> /// 砲台制御機能変更時 /// </summary> public override void OnSetTurretController(ITurretController turretController) { //砲台制御機能が有効になった時 if (turretController != null) { //FVアタックによる砲台制御の場合 if (turretController is FvAttackBase) { //FVアタック時間更新に合わせて、FVゲージを変化させる (turretController as FvAttackBase).onUpdateTime += this.uiFvAttackGauge.OnUpdateFvAttackTime; } //FVゲージに禁止マークを表示 this.uiFvAttackGauge.SetVisibleBanMark(true); this.uiFvAttackGauge.RefleshButtonInteractable(); //砲台制御中に使用出来ないタイプのアイテムのアイコンにも禁止マークを表示 foreach (var itemIcon in this.battleItemIconManager.icons) { if (itemIcon.IsTurretController()) { itemIcon.SetVisibleBanMark(true); itemIcon.RefleshButtonInteractable(); } } } //砲台制御機能が無効になった時 else { //FVゲージの禁止マークを解除 this.uiFvAttackGauge.SetVisibleBanMark(false); this.uiFvAttackGauge.RefleshButtonInteractable(); //アイテムアイコンの禁止マークも解除 foreach (var itemIcon in this.battleItemIconManager.icons) { itemIcon.SetVisibleBanMark(false); itemIcon.RefleshButtonInteractable(); } } }
/// <summary> /// 砲台制御機能変更時 /// </summary> public virtual void OnSetTurretController(ITurretController turretController) { }
public UnityFireControl(ITurretController controller, Transform aimingObject, float shootAngle = _defaulShootAngle) { _controller = controller; _shootAngle = shootAngle; _aimingObject = aimingObject; }