MonoBehaviour クラスは、エディターのゲームオブジェクトにスクリプトをアタッチすることができるフレームワークを提供します。また、Start や Update などの便利なイベントへのフックも提供します。
スクリプトの作成 の説明に従って、エディターで新しい MonoBehaviour スクリプトを作成できます。
MonoBehaviour クラスのすべてのメンバーの完全なリファレンスとその技術的な詳細については、MonoBehaviour スクリプトリファレンス を参照してください。
Unity でスクリプトアセットをダブルクリックして、そのアセットをテキストエディターで開きます。デフォルトでは、Unity は Visual Studio を使用しますが、Unity の Preferences の External Tools パネルで好みの任意のエディターを選択できます (メニュー:Unity > Preferences)。
MonoBehaviour スクリプトを作成することを選択した場合、ファイルの最初のコンテンツは以下のようになります。
using UnityEngine;
using System.Collections;
public class NewMonoBehaviourScript : MonoBehaviour {
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
このスクリプトは Unity 内部処理と連携するため 、MonoBehaviour と呼ばれるビルトインクラスの派生クラスを実装します。クラスはゲームオブジェクトにアタッチできる新しいコンポーネントタイプを作成するための一種の青写真と捉えることができます。スクリプトコンポーネントをゲームオブジェクトにアタッチするたびに、この青写真に基づいて定義されたオブジェクトの新規インスタンスが作成されます。作成ファイル名と一致するようクラス名がつけられます。クラス名とファイル名の同期を維持することが推奨されます。名前設定時の考慮事項 を参照してください。
ただし、クラスで定義される 2 つの関数に注目してください。Update 関数はゲームオブジェクトのフレーム更新を処理するコードを配置する場所です。これは、アクションをトリガーしたり、ユーザー入力操作に反応したりする動き、基本的には時間の経過とともに処理されるゲーム中のあるゆるものを含みます。Update 関数で必要な処理を行なうためには、多くの場合、変数のセットアップができること、設定を読み取ったうえでゲーム中のアクションが行なわれる前に他のゲームオブジェクトとの結びつけを行なえること、が役立ちます。Start 関数はゲームプレイの開始前 (Update 関数の初回呼び出し前) に Unity により呼び出され、任意の初期化を行なうのによい場所です。
ノート: プログラミングの経験があると、オブジェクトの初期化がコンストラクター関数を使用して行われないことに驚くかもしれません。これは、オブジェクトの構築が Unity エディターによって処理され、想定されるゲームプレイの開始時には行われないためです。MonoBehaviour のコンストラクターを定義しようとすると、Unity の通常の動きが妨げられ、プロジェクトに大きな問題が発生する可能性があります。
スクリプトはコンポーネントの青写真を定義するだけなので、スクリプトのインスタンスがゲームオブジェクトにアタッチされるまで、そのコードはアクティブになりません。Hierarchy パネルでスクリプトのアセットをゲームオブジェクト上へドラッグするか、現在選択されているゲームオブジェクトの Inspector 上へドラッグすることで、スクリプトをアタッチできます。Component メニューには Scripts サブメニューがあり、プロジェクトで利用可能なすべてのスクリプトが含まれています。これには、自分で作成したスクリプトも含まれます。スクリプトのインスタンスは、Inspector 上では見た目は他のコンポーネントと同じです。
1 回アタッチした後、Play を押してゲームを起動するとスクリプトが動作します。試すには以下のコードを Start 関数に加えます。
// Use this for initialization
void Start ()
{
Debug.Log("Hello world!");
}
Debug.Log は Unity のコンソール出力にメッセージを表示するだけの単純なコマンドです。Play now を押すと、メインのエディターウィンドウとコンソールウィンドウ (メニュー:__Window__ > General > Console) の下部にメッセージが表示されます。
MonoBehaviour クラスを使用すると、コルーチンを開始、停止、管理できます。
コルーチンの詳細については、コルーチン および StartCoroutine メソッドスクリプトリファレンス を参照してください。
MonoBehaviour クラスは、イベント関数 の大きなコレクションへのアクセスを提供します。これにより、プロジェクトで現在発生していることに基づいてコードを実行できます。ここでは、より一般的な例をいくつか紹介します。すべてのリストについては、MonoBehaviour スクリプトリファレンスページ の メッセージ セクションを参照してください。