(今回はこんなことを学びます)
・2つのオブジェクトが「ぶつかった」ときの処理方法
・「音」を出す方法。
・タグ(Tag)を設定する方法
(1)オブジェクトがぶつかった時のコード
・前回書いた「Ballスクリプト」をダブルクリックしましょう。
・下記のお手本通りにコードを追加してみましょう。(★印の部分)
*「public」で定義したものは、後で「Inspector」で操作することができます。
using UnityEngine; using System.Collections; public class Ball : MonoBehaviour { public float move_speed; private Rigidbody rb; // ★↓この一行を追加(変数の定義) public AudioClip coinGet; // Use this for initialization void Start () { rb = GetComponent<Rigidbody>(); } // Update is called once per frame void Update () { float moveHorizontal = Input.GetAxis("Horizontal"); float moveVertical = Input.GetAxis("Vertical"); Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical); rb.AddForce(movement * move_speed); } // ★↓下記のメソッド(命令ブロック)を追加 void OnTriggerEnter(Collider other){ if(other.CompareTag("Coin")){ Destroy(other.gameObject); AudioSource.PlayClipAtPoint(coinGet, transform.position); } } // ここまで }
(ここがポイント!)
・大文字、小文字に注意しよう。
・「OnTriggerEnter」=>「On」と「Trigger」と「Enter」の3つの単語の先頭は全部大文字!
・{}は必ずセットと覚えておこう。
・「始まりの波カッコ{」と「終わりの波カッコ}」がセットになっていないとエラーになる!
・コードを新しく追加したら、必ず「セーブ」すること。
(コードを読んでみよう!)
・「OnTriggerEnter」は、他のオブジェクトと「ぶつかった時」に呼び出される命令ブロックです。
・「if」(イフ)は、「もしも〜」という意味です。「もしも、ある条件が揃ったとき、あることを実行する。」という具合に使います。
・if(ここに書いた条件が揃ったら){
ここに書いてあることを実行する
}
・今回の場合は、「もしも、ぶつかったオブジェクトのTagにCoinという名前が書いてあったら、」(条件)
「ぶつかったオブジェクトを破壊する」(実行すること1)
「その場でcoinGetの音を出す」(実行すること2)
となります。
(2)Tag(タグ)の設定方法
では、「Tag(タグ)」を設定しましょう。
今回は、「Coinオブジェクト」に「Coin」という名前の「Tag」を設定します。
・「Hierarchy」で「Coin」を選択
・「Inspector」で「Tag Untagged」をクリック
・「Add Tag….」をクリック
・「+」をクリック
・Tagに名前をつける・・・>今回は「Coin」。大文字、小文字に注意しよう。
・これで「Coin」という名前のTagが「登録」されました。
・もう一度、「Hierarchy」で「Coin」を選択して「Tag Untagged」をクリック
・「Coin」を選択してクリック
・これで「Coin」という名前のタグの設定が完了しました。
(ここがポイント!)
・最後に、「is Trigger」にチェックを入れましょう。
・「OnTrigger」系の命令ブロックは、「is Trigger」にチェックを入れることで実行されるようになります。
ここまでできたら「再生ボタン」を押して実行してみましょう。
Ballを矢印で動かして、Coinとぶつけてみてください。
ぶつかった時に、Coinが消えたら成功です。
(3)効果音の設定方法
次は、音を出してみましょう。
BallがCoinとぶつかった時に、効果音を出すようにします。
・まずはUnityのAssetsの中に「音データ」を「インポート」します。
・「Assets」を「右クリック」してください。
・「Import New Asset….」を選択してクリック。これでパソコン内にある「音データ」をUnityの中にインポート(取り込む)ことができます。
・今回は「coin_get」という名前の音データをUnityにインポートしました。
・「Hierarchy」で「Ball」を選択
・インポートした音データを「Coin get」にドラッグ&ドロップする。
・これで「効果音」の設定は完了です。
・「再生ボタン」を押して実行してみましょう。
BallとCoinがぶつかった瞬間に「効果音」が鳴れば成功です。
(4)BGMの設定方法
せっかくなので、今度は、BGMも鳴らしてみましょう。
*今回は「Main Camera」にBGMを再生する機能を追加します。(Main Camera以外に追加しても構いませんが、常時画面上に存在するオブジェクトにしておくのがポイントです。)
*効果音と同じ要領で、事前に使いたい音源を「Import New Asset….」でインポートしておきましょう。
・まず「Hierarchy」の「Main Camera」を選択した状態で、
・「Add Component」をクリック。
・次に「Audio」をクリック。
・「Audio Source」をクリック。
・「Main Camera」に「Audio Source」の機能が追加されたことを確認する。
・インポートしておいたBGM用の音データを「Audio Clip」にドラッグ&ドロップする。
・最後に「Loop」にチェックを入れる。ここにチェックを入れることで、BGMが無限にループ再生されるようになります。
ここまでできたら「再生ボタン」を押してみましょう。
ゲームスタートと同時にBGMが鳴りだしたら成功です。