Unityのコンポーネントとは
Unityのコンポーネントとは、ゲームオブジェクトの部品である。ゲームオブジェクトだけでは空の容器であるが、コンポーネントを搭載することで様々な機能を得ることができる。ゲームオブジェクトについては以下の記事で紹介している。
ゲームオブジェクトとは
この記事ではコンポーネントの基礎について紹介していく
Unityのコンポーネント目次
Unityに入っているコンポーネント追加Mesh Filterの変更
Mesh Rendererの変更
Box Colliderについて
アクティブ機能について
目次にもどる
Unityのコンポーネント追加
コンポーネントがない空のゲームオブジェクトを作り、そこからコンポーネントを追加する手順を説明しようと思う。ヒエラルキー欄の下にある下矢印ボタンを押すとメニューが開くので「Create Empty」を選択しよう(メニューのGame Objectからも選べる)。
ヒエラルキーの欄にGameObjectという名前のゲームオブジェクトが追加されたのが確認できる。また、シーンビュー内にもゲームオブジェクトが表示されているのを見ることができる。
このGameObjectのインスペクター(Inspector)を確認するとコンポーネントとしてTransformがあるのがわかる。
これはゲームオブジェクトの位置(Position)、回転(Rotation)、大きさ(Scale)などを指定するものであり、全てのゲームオブジェクトに存在し、削除もできなくなっている。それぞれの値を少し変えて入力して、シーンビュー内でゲームオブジェクトがどう変化するか試してみよう。
ただ、Transform以外にはコンポーネントがない空の状態なのがわかる。
ここから「Add Component」を選択しよう。
以下の3つを選択してコンポーネントを追加してみよう。
「Mesh」→「Mesh Filter」
「Mesh」→「Mesh Renderer」
「Physics」→「Box Collider」
するとシーンビューに以下のような四角形が現れる。
ここからはそれぞれのコンポーネントを変更していく。
目次にもどる
Mesh Filterの変更
Mesh Filterのコンポーネントではゲームオブジェクトの形状を読み込むことができる。Mesh Filter追加時点では以下のようにNoneと表示されており、何も設定されていない。
Noneの右に二重円マークがあるので選択しよう。以下のようにゲームオブジェクトの形状の選択肢が表示される。
今回は「Cube」を選択してみよう。
するとシーンビューに表示される四角形がピンク色になったのが確認できる。
ピンク色なのは材質や色が設定できていないことを示している。次の項目で設定していく。
目次にもどる
Mesh Rendererの変更
Mesh RendererのコンポーネントではMaterials、Lighting、Probes、Additonal Settingsなどの設定が可能。今回はMaterialsを変更し、材質や色を設定する。
ここでも最初はNoneと設定されており、右に二重円マークがあるので選択しよう。以下のようにゲームオブジェクトの形状の選択肢が表示される。
今回は「Default-Diffuse」を選択してみよう。
すると材質や色が設定されたことで、シーンビューに表示される四角形の色がピンク色から変化したのがわかる。
目次にもどる
Box Colliderについて
残ったBox Colliderは衝突(当たり判定)を扱うコンポーネントの一つだ。「Add Component」で「Physics」をもう一度確認すればわかるが、Collider系コンポーネントはBox Collider(立方体の当り判定) の他にCapsule Collider(カプセル型の当たり判定)、Sphere Collider(球型の当たり判定)、Mesh Collider(ゲームオブジェクトの形そのままの当たり判定)が存在することがわかる。
今回は、Mesh Filterによりゲームオブジェクトの形状をCube(立方体)にしたので、それに合わせてBox Colliderのコンポーネントを追加したというわけだ。
当たり判定は放った弾の命中判定、壁に衝突した時の判定、ある場所まで到達したという判定などゲーム制作する上で極めて重要な要素である。
一見、ゲームオブジェクトの形状そのままの当たり判定となるMesh Colliderが優秀そうに見えるが、複雑な形状だと処理も重くなる弱点もある。どうしても必要な時以外は他のColliderで代用するといった工夫が必要だ(例えばRPGとかプレイしていても、町にいる登場人物とかは形状そのままの当たり判定ではなく他のColliderで代用している)。
Collider系コンポーネントについては別記事で詳しく紹介していく。
目次にもどる
アクティブ機能について
作成したGameObjectのインスペクター欄のすぐ下にチェックボックスがある。最初はチェックがついているので、クリックして外してみよう。
するとシーンビューから作ったゲームオブジェクトが消失する。
だが、ヒエラルキー欄を見れば作成したGameObjectは薄い色になっているが消えてはおらず、インスペクター欄を見ればコンポーネントも健在であることがわかる。
チェックを消せば、ゲームオブジェクトとそのコンポーネントを削除しないが、ゲーム上では表示されず処理なども行われない状態にできる。
動作のテストなどで使うことが多い機能なので覚えておこう。