(日記のまとめページはこちら:https://wakky.tech/unity-baseball-game/)
前回は、バットで打ったボールを初期位置に戻す処理を実装したので、今回はもどしたボールを再び撃ち出す処理を追加する。Ballが壁に当たった瞬間、最初にBallを撃ち出すときに使ったタイマーを再始動させて撃ち出すのが一番楽にできそう。ShootBall.cs内の変数、shootSwitchをBallが壁に当たった時にtrueにすればできそうだ。
というわけで、こちらのページを参考に、ShootBall.cs内の変数shootSwitchをpublic static変数で定義しなおし、DeleteBall.cs内のOnCollisionEneterで、ボールがぶつかったときにshootSwitchをtrueにすることで、ボールを複数回撃ち出すようにした。
https://gist.github.com/WakkyFree/7e4fcf8d195d8e5c6c48ec748dc8b34d/63ddb405d09d2b1e97d0dd94e0698afe3d440edd
https://gist.github.com/WakkyFree/be41a8d14b898377990249bfd3615047/50bb07f8e8c05509076b9da09b362203de8ae9b9
もうひとつポイントは、ShootBall.csでtimerがつねに進んでたらボールを撃ち出すタイミングがバラバラになってしまうので、if(shootSwitch)を満たすときだけtimerを進めて、常に同じタイミングでボールが撃ち出されるようにした。段々ゲームとしての体裁が整ってきた・・・ような気がする。