コードの型
スクリプトがアタッチされている「そのオブジェクトそのもの」を操作するときに使います。
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」。このように使い分けしました。

コメント