【Unity】Unityで3D野球盤をつくろう日記 9日目:ボールを複数回撃ち出す(異なるオブジェクト間で変数を共有する)

投稿日:2017年1月10日
最終更新日:2019年1月19日

(日記のまとめページはこちら: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を進めて、常に同じタイミングでボールが撃ち出されるようにした。段々ゲームとしての体裁が整ってきた・・・ような気がする。


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください