[Unity]的にボールを飛ばすスクリプトを作成する

今回は、的に向かってボールを飛ばすスクリプトを作成したいと思います。

飛ばす処理自体は、割と簡単に作れるので、その後の工夫が大事になってきますね。

スポンサーリンク

的当てゲームのボールを飛ばすスクリプトを作成する

とにもかくにも、スクリプトファイルを作らないと始まらないので、プロジェクトウィンドウより右クリックして「Create」→「C# Script」を選択します。

名前は分かりやすいように「Ball」にしました。

ボールを飛ばすスクリプト

飛ばすぐらいなら、これくらいの記述で出来ちゃいます。

Physicsを使っているのでAddForceを使ってボールに力を加えています。

ボールは、画面の奥に向かって飛ぶように、Z方向に1500という値を設定しています。

Xは0で良しとして、Yに300と入れているのは重力の影響で飛ばしている間にボールが地面に落下することを防ぐためです。

スクリプトを作成したらボールに対してアタッチしましょう。

ゲームを実行すると同時にボールが的に向かって飛んでいくようになります。

ボールが画面奥に飛んでいく様子

ちょっとボールが大きすぎですかね?スーファミのヨッシーアイランドのラスボス戦を思い出すね。

一応ボールが的に当たったら、そこで止めるようにすることも出来ます。

ボールが的に衝突したら止まるスクリプト

11行目から14行目を追加しました。

これで、的に当たった瞬間に、ボールに加わる力を無効にします。

衝突時には、OnCollisionEnterというメソッドが呼び出されます。ですから、この中でボールが止まる処理を記述すれば良いわけです。

具体的には、Rigidbodyコンポーネントの「isKinematic」をtrueにすることで、オブジェクトに働く力を無効にすることが出来ます。そのため、ボールが的に当たると止まるようになります。

ボールが的に衝突したら止まる様子

このアニメーションのように、的に衝突した瞬間にピタっと止まります。

的のどの部分に当たったのか確認する際に役立ちますね。

次回は、ボールのプレハブを作って、連続でボールを飛ばせるようにします。