【Unity/C#】gameObject(自分自身の箱)の基本と使い方

Unityコード専用検索

コードの型

スクリプトがアタッチされている「そのオブジェクトそのもの」を操作するときに使います。

C#

// 1. 自分自身の箱を非表示にする
gameObject.SetActive(false);

// 2. 自分自身の名前にアクセスする
string myName = gameObject.name;

// 3. 自分自身の位置を変更する
gameObject.transform.position = new Vector3(0, 10, 0);

コードの仕組み

gameObject(小文字)は、「今このスクリプトがくっついている箱」を指す専用のショートカットです。

Unityのすべてのスクリプト(MonoBehaviour)は、必ずどれか一つのGameObjectにくっついて動いています。プログラムが「今自分はどの箱で動いているんだっけ?」と確認しなくても済むように、Unityが最初から「この gameObject という名前で自分自身を呼べるようにしておこう」と用意してくれています。

活用例

例えば、敵に当たったときに「自分自身を消す(Destroyする)」という処理でよく使います。

C#

void OnTriggerEnter(Collider other)
{
    // 何かにぶつかったら
    if (other.CompareTag("Bullet"))
    {
        // ぶつかった相手(Bullet)ではなく、
        // 「自分自身(敵のgameObject)」を消滅させる
        Destroy(gameObject);
    }
}

その他(GameObjectとの違いと注意点)

  • 大文字と小文字の明確な区別:
    • GameObject(大文字)=「箱」という種類の定義(設計図)。新しい箱を作ったり、他の箱を探したりするときに使う。
    • gameObject(小文字)=「このスクリプトがくっついているその特定の箱」。自分自身を操作するときに使う。
  • 省略可能: 実はスクリプト内では gameObject.SetActive(true) と書かなくても、単に SetActive(true) と書くだけで「自分自身に対して実行する」とみなされる場合が多いです。しかし、初心者のうちは gameObject. を明示して書いたほうが、「どの箱に対して命令しているか」が明確になるのでおすすめです。

GameObjectを理解すると、「自分自身の位置を動かしたい」「自分自身を消したい」といった命令が、誰に対して行われているのかがハッキリと分かるようになります。

「自分自身の箱を操作する小文字の gameObject」と「新しい箱を作る/探す大文字の GameObject」。このように使い分けしました。

コメント

タイトルとURLをコピーしました