【Unity】ゲームオブジェクトとコンポーネント

TL; DR

  • Unityのゲームオブジェクトはコンポーネントのコンテナのようなもの.
  • オブジェクトはゲームオブジェクトにコンポーネントをつけることで作成される.

ゲームオブジェクトって?

Unity公式マニュアルによると(そもそもこの記事の内容は当然全てこれに載ってる),

GameObject (ゲームオブジェクト) はキャラクター、小道具、背景などを表す Unity の基礎となるオブジェクト

だそう.

オブジェクトは,Transformコンポーネントのみがくっついたゲームオブジェクトに,それぞれ機能を持たせるコンポーネントがくっついて,「ライトオブジェクト」や「車のオブジェクト」になっているとかなんとか.

↑Hierarchyウィンドウに表示されるオブジェクトたち

難しくてよくわからない?なら試してみよう

まずCreateCreate EmptyからTransformコンポーネントのみがついたゲームオブジェクト(以下:Game Object)を出す.

InspectorウィンドウでTransformコンポーネントだけついている事が確認できる.

さらにCreate3D ObjectCubeで白いCubeを出す.


Game Objectは座標だけだから見た目はないけどCubeは見て確認できる.
Cubeには見た目がある
ここでCubeの各コンポーネントの右上の歯車を押してRemove Componentからコンポーネントを消していくと,

CubeのコンポーネントもTransformコンポーネントのみになり,

見た目はGame Objectと一緒になった(見た目がなくなった).

どういうことかというと

CubeもTransformコンポーネントのみのゲームオブジェクトに,見た目や当たり判定のコンポーネントがついてCubeオブジェクトになっていたらしい.こんな感じでUnity内のオブジェクトはTransformのみがついたゲームオブジェクトに様々なコンポーネントがついて出来ている(Add Componentでコンポーネントがつけられる).

ちなみに

自分たちで書いたスクリプトも,Unityからしたらコンポーネントの一つとして見なされる(だからAdd ComponentNew Scriptが選択できる)