(小学生Unity入門)ボールでコインをゲットしてみよう!

(今回はこんなことを学びます)

・ある物体と他の物体が「ぶつかった」ときの処理方法

・「音」を出す方法。

・タグ(Tag)を設定する方法


・「Ballスクリプト」をダブルクリックしましょう。

・下記のお手本通りにコードを「追加」してみましょう。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Ball : MonoBehaviour
{
    public float speed;
    private Rigidbody rb;
    // ★追加
    public AudioClip sound;

    void Start()
    {
        rb = GetComponent();
    }

    void Update()
    {
        float moveH = Input.GetAxis("Horizontal");
        float moveV = Input.GetAxis("Vertical");
        Vector3 movement = new Vector3(moveH, 0, moveV);
        rb.AddForce(movement * speed);
    }

    // ★追加
    private void OnTriggerEnter(Collider other)
    {
        if(other.CompareTag("Coin"))
        {
            Destroy(other.gameObject);
            AudioSource.PlayClipAtPoint(sound, transform.position);
        }
    }
}

(復習!)

*「public」に記載したものは、後で「Inspector」で操作することができます。

 

(ここに注意しよう!)

・大文字、小文字に注意しよう。

・「OnTriggerEnter」=>「On」と「Trigger」と「Enter」の3つの単語の先頭は全部大文字!

・{}は必ずセットと覚えておこう。

・「始まり{」と「終わり}」がセットになっていないとエラーになる!

・コードを新しく追加したら、必ず「セーブ」すること。

 

(コードを読んでみよう!)

・「OnTriggerEnter」は、他の物体と「ぶつかった時」に呼び出される命令ブロックです。

・「if」(読み方;イフ)は、「もしも〜」という意味です。「もしも、ある条件が揃ったとき、あることを実行する。」という具合に使います。

・if(ここに書いた条件が揃ったら){
ここに書いてあることを実行する
}

・今回の場合は、

「もしも、ぶつかった相手(物体)のタグにCoinという名前が書いてあったら、」(条件)

「ぶつかった相手(物体)を破壊する」(実行すること1)

「音を出す」(実行すること2)

となります。


(タグの設定方法)

では、「タグ」を設定しましょう。

今回は、Coin(物体)に「Coin」という名前の「タグ(Tag)」を設定します。

・「Hierarchy」で「Coin」を選択して、「Untagged」をクリック

・「Add Tag….」をクリック

・「+」をクリック

・Tagに名前をつけてSaveを押す・・・>今回は「Coin」。大文字、小文字に注意しよう。

・もう一度、「Hierarchy」で「Coin」を選択して「Untagged」をクリック

・「Coin」を選択してクリック

・これで「Coin」という名前のタグの設定が完了しました。

(ここがポイント!)

・最後に、「Is Trigger」にチェックを入れる。

・「OnTriggerEnter」の命令ブロックを書いた場合には、必ず「Is Trigger」にチェックを入れること。

ここまでできたら「再生ボタン」を押して実行してみましょう。

Ballを矢印で動かして、Coinとぶつけてみてください。

ぶつかった瞬間に、Coinが消えたら成功です。


(効果音の設定方法)

次は、音を出してみましょう。

BallがCoinとぶつかった時に、効果音を出すようにします。

・まずは「Assets」の余白で右クリックしてください。

・「Import New Asset….」を選択してクリック。これでパソコン内にある「音データ」をUnityの中にインポート(コピーする)ことができます。

・今回は「CoinGet」という名前の音データをUnityにインポートしました。

*音は自由です。

・Ballオブジェクトを選択

・インポートした音データを「Sound」の空欄にドラッグ&ドロップする。

・これで「効果音」の設定は完了です。

「再生ボタン」を押して実行してみましょう。

BallとCoinがぶつかった瞬間に「効果音」が鳴れば成功です。