16.調整:攻撃中の移動速度を遅くする
前回までで、主だった昨日の実装は一段落つきました。ここからは実際に遊んでみてのフィードバックをもとに、細かい部分の実装をしていきます。
気になったのは、逃げながら攻撃していればほぼ追いつめられることが無い点でした。敵の移動速度>プレイヤーの速度となるよう調整するのが一案ですが、例えばシールド象の移動速度を速くすると少々オーバーパワーのようです。そこで、「攻撃中だけプレイヤーの移動速度が遅くなる」ようにします。
PlayerMovementクラスにメソッドを追加
移動速度を遅くするメソッドと、遅くなった移動速度を回復させるメソッドを追記します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
//移動速度を低下させる //PlayerShootingクラスから実行 public void SlowMoving() { speed *= slowSpeedRate; } //移動速度を初期値に戻す public void RecoverMovingSpeed() { speed /= slowSpeedRate; } |
このメソッドの実行は、PlayerShootingクラスから行います。
PlayerShootingクラスから実行
まずは遅くする処理。Shootingメソッドの中で実行します。
また、PlayerMovementの取得は、PublicでInspectorより行います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public PlayerMovement playerMovement; bool isSlow = false; //該当部分以外は省略 public void Shooting(){ //PlayerMovementのSlowMoving()を実行する //重ね掛けしないようにフラグで状態管理 if(isSlow == false) { playerMovement.SlowMoving(); isSlow = true; slowTimer = 0f; } } |
次に移動速度を回復させる処理。こちらはUpdateメソッドから。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
float slowTimer; float slowTime = 1.0f; //該当部分以外は省略 void Update(){ //プレイヤーの移動速度を戻す if (slowTimer >= slowTime) { if (isSlow) { playerMovement.RecoverMovingSpeed(); isSlow = false; } } } |
実装確認
撃ったら移動速度が遅くなる⇒チョットしたら戻る の挙動ができていればOK!
第17回がお蔵入りしたので次回はコチラ
※第17回ではノックバックの実装を行いましたが、イマイチだったので削除してます。それでも読みたい物好きはコチラ
前回はコチラ
Unity公式チュートリアルSurvival Shooter WITH PK Chapter.15「特殊な敵を実装する」
「Unity公式チュートリアルSurvival Shooter WITH PK Chapter.16「調整:攻撃中の移動速度を遅くする」」への1件のフィードバック