Unity3d 入門 03 「コンポーネント」

前回はゲームオブジェクトについてでしたが、
今回は「コンポーネント」についてです。
コンポーネントは、ゲームオブジェクトに付与できる
「動作を定義するもの」あるいは「属性」といったものです。


まず、カメラ・床・球・光源を配置します。

ここでゲームを実行します。
何も動きません。

ここで、Hierarchy 内の球を選択し、
メニューの Component > Physics > Rigidbody を押します。
そうすると、この球の Inspector に Rigidbody のコンポーネントが追加され、
物理演算が行われるようになります。
ゲームを実行すれば球は床に落ちます。

では、この球の Inspector からコンポーネントを削除したらどうなるでしょう?
試しに、Sphere Collider を消してみます。

なんと球は床を突き抜けて落ちて行ってしまいました。
そうです、このコンポーネントは衝突判定を行うものだったのです。


続いて Material についてです。
これは正確に言うとコンポーネントじゃないかもしれませんが、
都合がいいのでここで取り上げます。
Project ビューの Create から Material を押します。
そうすると新しい New Material が Project ビュー内に現れます。

続いて、この New Material を選択し、
Inspector ビュー内の色などをいじります。
(ここではしませんが、テクスチャを付けることもできます。)

そして、この Material を貼り付けたいオブジェクトを Hierarchy から選びます。
注意なのが、ここで Inspector 右の鍵をかけます。
これによって別のオブジェクト・コンポーネントを選択しても Inspector の対象は変更になりません。
先ほどの New Material を Mesh Renderer > Materials > Element 0 にドラッグします。

そうすると球の色が変わりました!
このようにすることで、オブジェクトの色や模様を変更することができます。


最後は Script です。
Material と同じく Project ビューの Create > C# Script を押します。
Javascript でもできることは同じなのですが好みの問題です。

そして新しくできた NewBehaviourScript を開きます。
そうすると、MonoDevelop あるいは VisualStudio が起動し、
このスクリプトを編集できるようになります。
以下のように書き加えます。

public class NewBehaviourScript : MonoBehaviour {
	// Use this for initialization
	void Start () {
	}
	// Update is called once per frame
	void Update () {
		this.transform.position += new Vector3(0.1f, 0.0f, 0.0f);
	}
}

新しく球のオブジェクトを追加し、その Inspector に NewBehaviourScript をドラッグします。
これによって、この球にスクリプトが適用されるようになりました。

ゲームを実行すると、
新しい白い球は
緑の重力で落ちていく球とは別方向に動いていくのが見えると思います。

今回書いたスクリプトは1行ですが
ゲームが大きくなるに従ってスクリプトの行数はどんどん増えていきます!