[Unity]スクリプト事始め

  • SumoMe

Unityではオブジェクトに独自の挙動やシーンの制御をするために、オリジナルのコンポーネントを作成することができます。Unityではこのオリジナルのコンポーネントをスクリプトを利用して作成します。今回は簡単な導入を行います。

スクリプトを作成する

スクリプトは以下の2ステップで作成します。

  1. Asset内にスクリプトファイルを作成する
  2. スクリプトファイル名を決定する

ProjectウインドウのAssetディレクトリ以降を右クリックし、「Create」->「Javascript」or「C# Script」or「Boo Script」のどれかを選択します。これら3つのスクリプトは記述方法が違うだけで、同じ処理が実現可能(のはず)です。今回は「C# Script」を利用することにします。また、同一のプロジェクト内のスクリプトは言語を統一する必要はありません。

createScript

作成すると、Projectウインドウ内に新しいスクリプトファイルが作成され、名前を変更できる状態となります。ここで必ずスクリプトを表すファイル名に変更してください。今回は簡単に「firstScript」とファイル名を変更しました。

renameScript

スクリプトを編集する

スクリプトファイルをダブルクリックすると、標準ではMono Developという開発環境が起動し、プロジェクトが読み込まれ、スクリプトファイルが開かれます。

monodevelop

ここで注目して欲しいのが、ファイル中のクラス名が先ほど変更したファイル名となっている点です。

public class firstScript : MonoBehaviour {

ファイル作成時のファイル名が作成するクラス(≒自作コンポーネント)名となりますが、以降はファイル名を変更してもクラス名は変更されませんので、管理の面から最初にファイル名をきちんと決めるべきです。むやみにクラス名は変更しないほうがミスを防ぎます。他のスクリプトからクラスを参照することがあるためです。

今回はスクリプトに関する説明はしませんが、まったく動きのないスクリプトも面白くないので、少し加工します。firstScriptファイルに以下の内容を追加してください。14行目が追加部分です。

	void Update () {
		transform.Rotate(0,Time.frameCount,0);
	}

追加したら、MonoDevelopのメニューから「ビルド」->「全てビルド」を選択してください。特に何もなければスクリプトに記述ミスはありません。もし、以下のように何か異変があったら、スクリプトに記述みすがありますので、注意深く修正してください。

scriptError

ビルドに問題がなければ、メニューから「ファイル」->「保存」で変更したスクリプトファイルを保存してください。

スクリプトをオブジェクトに付加し、確認する

作成したスクリプトはコンポーネントですので、オブジェクトに対して付加してはじめて効果を表します。コンポーネントの付加方法は以下のページに詳細を記しています。

[Unity]ゲームオブジェクトとコンポーネント

今回はもうひとつ、付加の方法があるので、そちらで付加します。オブジェクトを予め用意しておき、Projectウインドウのスクリプトファイルをドラッグし、付加したいオブジェクトの上でドロップします。Inspectorウインドウに付加されたのが確認できます。

付加したら、Untity上部にある再生ボタンを押すと、Gameウインドウでプログラムが実行されます。スクリプトが間違っていなければ、スクリプトを付加したオブジェクト回転します。このスクリプトは、全てのゲームオブジェクトに適用が可能です。色々なゲームオブジェクトに付加して確認してください。

runbotton

おわりに

今回はスクリプトの作成、編集、付加、実行を紹介しました。スクリプトファイルを作成するためには、プログラミングの知識が必要になりますので、C#の本や、参考のサイトを片手にUnityを使いながら勉強すると良いかもしれません。

(注 今回のスクリプトはMonoBehaviourを継承しているため、コンポーネントとして動作しています。すべてのスクリプトがコンポーネントとなるという事ではありません。