今回は、的に向かってボールを飛ばすスクリプトを作成したいと思います。
飛ばす処理自体は、割と簡単に作れるので、その後の工夫が大事になってきますね。
的当てゲームのボールを飛ばすスクリプトを作成する
とにもかくにも、スクリプトファイルを作らないと始まらないので、プロジェクトウィンドウより右クリックして「Create」→「C# Script」を選択します。
名前は分かりやすいように「Ball」にしました。
飛ばすぐらいなら、これくらいの記述で出来ちゃいます。
Physicsを使っているのでAddForceを使ってボールに力を加えています。
ボールは、画面の奥に向かって飛ぶように、Z方向に1500という値を設定しています。
Xは0で良しとして、Yに300と入れているのは重力の影響で飛ばしている間にボールが地面に落下することを防ぐためです。
スクリプトを作成したらボールに対してアタッチしましょう。
ゲームを実行すると同時にボールが的に向かって飛んでいくようになります。
ちょっとボールが大きすぎですかね?スーファミのヨッシーアイランドのラスボス戦を思い出すね。
一応ボールが的に当たったら、そこで止めるようにすることも出来ます。
11行目から14行目を追加しました。
これで、的に当たった瞬間に、ボールに加わる力を無効にします。
衝突時には、OnCollisionEnterというメソッドが呼び出されます。ですから、この中でボールが止まる処理を記述すれば良いわけです。
具体的には、Rigidbodyコンポーネントの「isKinematic」をtrueにすることで、オブジェクトに働く力を無効にすることが出来ます。そのため、ボールが的に当たると止まるようになります。
このアニメーションのように、的に衝突した瞬間にピタっと止まります。
的のどの部分に当たったのか確認する際に役立ちますね。
次回は、ボールのプレハブを作って、連続でボールを飛ばせるようにします。