みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

BooでUnityのEditorWindowを作る

EditorWindowを使用すると、Unity Editor上でオリジナルの設定画面を作成することができます。早速1つインターフェイスを作ってみました。

作ったのは、Graphics.DrawTexture()のパラメータを設定するためのものです。作ったのがこれ↓ ちなみにキャラは作成中のゲームの素材です。ゲームが完成したら公開するかもしれません。

f:id:atsuhiro-me:20151103003518p:plain:w300

Graphics.DrawTexture()のパラメータをテクスチャに従って手で入力するのが大変なので、アシストするためのものです。Textureにテクスチャを設定し、W,H,X,Y,Zoomをいじると、下のプレビューで実行結果を確認できます。最下部にはコピペ用の文字列フィールドがあり、

Graphics.DrawTexture(Rect(2,370,617,248),texture, Rect(0f,0.068f,0.796f,0.3199481f),0,0,0,0,null)

という部分をスクリプトにコピペすれば、一発でテクスチャが表示されるという便利なものです。

EditorWindowをBooで記述するには、以下のようなBooスクリプトを作成します。

import UnityEngine
import UnityEditor
class mine (EditorWindow): 
   
    [MenuItem("Window/DrawTextureTool")]
    static def ShowWindow():
        EditorWindow.GetWindow(typeof(mine));
    def OnGUI():
       // Do something here

ポイントは、ShowWindow()はStaticにすること。BooではC#と同様[]でプロパティを指定します。

OnGUI()で実行すべき内容は、以下のページに丁寧に書いてありますので、参照しましょう。

http://docs.unity3d.ru/ScriptReference/EditorGUILayout.html

作成したBooスクリプトを、Asset/Editorの中に保存します。すると、以下のようにWindowメニューの中にDrawTextureToolという項目が自動で追加されます。ここをクリックすると、上の画像のようなウインドウが表示されます。

f:id:atsuhiro-me:20151103003520p:plain:w300

こんな感じで、開発に便利なインターフェイスを作成すると、開発作業が捗りそうですね。

ダウンロード

参考

 (2013.6.23)