【Unity】Unityで3D野球盤をつくろう日記 7日目:タイマーを使って、ボールを一定時間たってから撃ち出す

投稿日:2016年12月21日
最終更新日:2019年1月19日

(日記のまとめページはこちら:https://wakky.tech/unity-baseball-game/

前回は、撃ち出したボールを消す処理をつくった。現在の仕様だと、スタート後すぐにボールが射出されてしまい、ボールを打ちにくい。そこで、タイマーをつくってShootBall.csスクリプトに付加して、一定時間たってからボールが射出されるようにしたいと思う。タイマーは、deltaTimeとif文を使ってつくる。

 

タイマーの作成

Ballに付加しているShootBall.csスクリプトを以下のように書き換える。

https://gist.github.com/WakkyFree/7e4fcf8d195d8e5c6c48ec748dc8b34d/a2f99dc0b8905b330c8551efa46051fccb5f3567

簡単に解説すると、Update内で、timerTime.deltaTimeをFrameごとにtimerに加算していって、timerがtimeLimit(ここでは1.0f、つまり1秒)を超えた時にif文の中を実行して、ボールAddForceで力を加えて撃ち出している。if文の最後にtimerをリセットするが、ただtimerをリセットするだけだと、1秒ごとにAddForceにより力が加わってしまう。そこで、shootSwitchという変数を用意してStartで一回だけTrueにしておく&if文の条件に加えておき、if文が実行された後でFalseすることで、一回だけ力を加えている。

複数回ボールを投げるときは修正が必要かもしれないが、とりあえずこれで指定時間後にボールを撃ち出すことができるようになった。


投稿者: wakky

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

コメントを残す

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

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