(日記のまとめページはこちら:https://wakky.tech/unity-baseball-game/)
前回は、撃ち出したボールを消す処理をつくった。現在の仕様だと、スタート後すぐにボールが射出されてしまい、ボールを打ちにくい。そこで、タイマーをつくってShootBall.csスクリプトに付加して、一定時間たってからボールが射出されるようにしたいと思う。タイマーは、deltaTimeとif文を使ってつくる。
タイマーの作成
Ballに付加しているShootBall.csスクリプトを以下のように書き換える。
簡単に解説すると、Update内で、timerTime.deltaTimeをFrameごとにtimerに加算していって、timerがtimeLimit(ここでは1.0f、つまり1秒)を超えた時にif文の中を実行して、ボールAddForceで力を加えて撃ち出している。if文の最後にtimerをリセットするが、ただtimerをリセットするだけだと、1秒ごとにAddForceにより力が加わってしまう。そこで、shootSwitchという変数を用意してStartで一回だけTrueにしておく&if文の条件に加えておき、if文が実行された後でFalseすることで、一回だけ力を加えている。
複数回ボールを投げるときは修正が必要かもしれないが、とりあえずこれで指定時間後にボールを撃ち出すことができるようになった。