[Unity]スクリプトの概念

  • SumoMe

UnityのスクリプトはC言語などの構造化プログラミングではなく、オブジェクト指向プログラミングを採用しています。そこで、Unityのスクリプティングの簡単な概念を説明します。

概念

C言語などの構造化プログラミングでゲームを制作すると、大きな流れの中で、様々な処理を記述します。

structprogramming

もちろんこの記述の仕方で、立派なゲームが制作できますし、問題はありません。

Unityではオブジェクト指向プログラミングを採用し、複雑な処理はUnity側が処理し、利用者はMonoBehaviourクラスを継承するだけで、オブジェクトを制御することができます。つまり、オブジェクト毎に処理を記述したスクリプトを用意すれば、あとはUnity側が自動的に処理してくれます。

objectprograming

この仕組は非常に強力で、必要最低限のスクリプトをいくつも用意し、オブジェクトに対して複数付加するだけで、複雑な動きをするプログラムを書くことができます。

複数のスクリプトを付加する

上記の通り、複数のスクリプトを付加させる実験をしましょう。以下のスクリプトを用意しました。

using UnityEngine;
using System.Collections;

public class ScriptA : MonoBehaviour {
	// Use this for initialization
	void Start () {
		print ("start ScriptA");
	}
}
using UnityEngine;
using System.Collections;

public class ScriptB : MonoBehaviour {
	// Use this for initialization
	void Start () {
		print("start ScriptB");
	}
}

これらを一つのオブジェクトに対して付加します。

addscripts

実行してみると以下のようになります。

resultScript

このようにスクリプトを複数付加することができます。ですので、基本的なスクリプトを用意し、付加するスクリプトに違いを与えて、挙動の違うオブジェクトを作り出すことが出来ます。ちなみに、実行するスクリプト順はシステム側の都合があるらしく、ユーザにはわかりません。

おわりに

あまり上手に説明出来ませんでしたが、オブジェクトには複数のスクリプトコンポーネントが付加できる。付加するスクリプトでオブジェクトの挙動を変えることができると覚えておいてください。