IT

【Unity】コンポーネント

2021年3月8日

コンポーネント

componentとは、対象のGameObjectのプロパティというか性質を定義するものです。
GameObjectは球体やカメラなどさまざまな物体の位置だったり、重力などの物理演算だったり、さまざまな性質を構成するもので、
Unityの画面上では入力をすることができますが、一定の値となるため、何かゲーム中に変更を加えたいとかある場合は、そこで設定することができません。

こういう場合は、プログラムC#で可変的にcomponentの値を変更したりできるようにする必要があります。

unityでは以下の左のようなinspectorの欄がcomponentとなります。
以下のようにTransformというcomponent、Sphere Colliderというcomponent、Rigidbodyというcomponentなど
さまざまなものが定義されています。

そしてこれらをプログラムと紐づけるには、右のように
GetComponent<コンポーネント名>();
とすることで簡単にプログラム上で扱えるようになります。

そしてクラスのプロパティ(グローバル変数化)宣言をする必要があります。
こうすることでこのクラスの他のメソッドでもコンポーネントオブジェクトを使用できるようになります。

そして選択中のGameObjectに対して新たにcomponentを追加したい場合は、
上の画像の黄色枠で追加することができます。

衝突

private void OnTriggerEnter(Collider other)
{
    if(other.gameObject.CompareTag("Pick Up"))
    {
        other.gameObject.SetActive(false);
        count = count + 1;
        print(count);
        SetCountText();
    }
}

void SetCountText()
{
    print(count.ToString());
    CountText.text = "カウント:" + count.ToString();
}

OnTriggerEnterで衝突した時に呼び出される関数で、
衝突した際の情報はColliderクラスのotherという変数に格納される。
この中にgameObjectというプロパティがあり、まさに衝突した物体の情報が入っている。

other.gameObject.CompareTag("PickUp")
とあるが、衝突した物体のタグが"PickUP"かどうかを判定しており、trueなら処理が行われるようになっている。
TagはUnityの管理画面上で設定することができます。

-IT
-

© 2022 Yosshi Blog Powered by AFFINGER5