#第一回 世界の骨格を作ろう
Unityは現代的なゲーム制作のために作られた統合開発環境です。
その背景にあるエディター拡張はまさに哲学。そしてシンプル。
ゲームの世界を構成するオブジェクトを自由に支配し、
適切な属性やスクリプトを設定して命を吹き込むこと。
ここでは「ウィンドウ」の制作を題材として、Unityの基本をご紹介していきます。
#ウィンドウを手に入れる
早速Unityを支配するために、エディタのウィンドウを生成しましょう。
##エディタースクリプト
エディタースクリプトとは、Unityエディタを拡張するためのスクリプトです。スクリプトはC#で書かれており、普段Unityでスクリプトを書いている開発者の皆さんなら容易に修得することが可能です。
##エディタースクリプトの配置場所
エディタースクリプトの配置場所は決まっています。必ずEditorディレクトリ配下に配置するようにして下さい。スクリプトがEditorディレクトリ配下にあるのであれば、Editorディレクトリはどの場所にあっても良いです。
#初めてのエディタスクリプトの作成
それでは早速「ウィンドウ」を作成して行きましょう。プロジェクトウィンドウで右クリックをし、Create
=> Folder
を選択し名前をEditor
にします。
次にEditorフォルダの中で右クリックをし、Create
=> C# Script
を選択し、名前をHelloWindow
とします。
これでエディタスクリプトの土台が出来上がりました。
##using UnityEditor;
早速スクリプトを記述して行きましょう。エディタスクリプトを利用するにはusing UnityEngine;
の他にusing UnityEditor;
が必要になります。UnityEditorの中にエディタを制御する様々なクラスがあるわけです。
##EditorWindow
次に普段のスクリプトであればMonoBehaviour
を継承していますね。ここをEditorWindow
に変更します。こうすることでExampleスクリプト自体がウィンドウとなります。
using UnityEngine;
using System.Collections;
using UnityEditor;
public class Example : EditorWindow {
}
そしてウィンドウを表示するためのスクリプトは以下のようになります。
using UnityEngine;
using System.Collections;
using UnityEditor;
public class Example : EditorWindow
{
static Example example;
static void Hoge ()
{
example = GetWindow<Example> ();
example.Show ();
}
}
GetWindowでExampleウィンドウを取得し表示するという仕組みのスクリプトです。しかしこのままではHogeメソッドを呼び出す手段がありません。
###MenuItem
Unityには自由にメニューバーの項目を追加できる機能があります、それがMenuItemです。今回はこれを使用して、Menuを作成し、そこからHogeメソッドを呼び出します。
using UnityEngine;
using System.Collections;
using UnityEditor;
public class Example : EditorWindow
{
static Example example;
[MenuItem("Window/OpenWindow")]
static void Hoge ()
{
example = GetWindow<Example> ();
example.Show ();
}
}
##ウィンドウを開く
さぁこれでエディタウィンドウを開く準備ができました。早速開いてみましょう。Window
=>Open Window
をクリックして下さい。
おめでとうございます。無事Unityを支配する第一歩を踏み出しました。
#次回
#つづかない
以上ネタでしたー