すでに ゲームオブジェクト の項で説明しているとおり,あるゲームオブジェクトには,複数のコンポーネントが含まれています。 ゲームオブジェクトとその最も一般的なコンポーネント – Transform コンポーネントを例にとりつつ,この関係について詳しく見ていきましょう。 適当なUnityのシーンを開き,新しいゲームオブジェクトを作成します(Windowsなら ,Macなら で作成してください)。次に作成したゲームオブジェクトを選択して, Inspector で見てみます。
空(から)のゲームオブジェクトにすでに,名前, Tag そして Layer があることに注意してください。同様にすべてのゲームオブジェクトには Transform コンポーネント があります。
Unityでは,ゲームオブジェクトを生成すると,必ずTransformコンポーネントが付属することになります。Transformコンポーネントとは,最も重要なコンポーネントのひとつで,すべてのゲームオブジェクトの変形に関するプロパティは,このコンポーネントを使うことで有効になります。 Transformコンポーネントは,ゲームワールド/シーンビューにおいて,あるゲームオブジェクトの位置や回転,そしてスケールを定義します。 もしゲームオブジェクトがTransformコンポーネントを持っていなかったとしたら,コンピュータのメモリ内におけるなんらかの情報以上のものにはなり得ません。事実上,世界に存在しないのと同じことなのです。
同じくTransformコンポーネントは, Parenting (親子関係化)と呼ばれる概念を実現します。それは Unity Editor 全体で使われるものですが,ゲームオブジェクトを扱う際にきわめて重要なもののひとつです。 Transformコンポーネントと親子関係化についてさらに詳しく知りたい場合には, Transform Component Reference page を参照してください。
Transformコンポーネントはすべてのゲームオブジェクトにとってきわめて重要なものであるので,各ゲームオブジェクトには必ずひとつ付属することになります。しかし同じような形で,その他のコンポーネントがゲームオブジェクトに付属していることがあります。
メインカメラゲームオブジェクトを見てみましょう。するとそれが異なったコンポーネントのコレクションを含んでいることがわかるでしょう。具体的に言えば, Camera Component , GUILayer , Flare Layer , Audio Listener からなっています。 これらのコンポーネントはすべてゲームオブジェクトに対して追加機能性を与えるものです。 これらなしでは,プレイヤーが遊んでいるゲームのグラフィックは,一切レンダリングされることはないのです! リジッドボディ,コライダ,パーティクル,オーディオ等はすべて別々のコンポーネント(もしくはコンポーネントの組み合わせ)として,任意のゲームオブジェクトに追加することが可能となっています。