LoginSignup
7

More than 5 years have passed since last update.

posted at

初めてのUnity (裏) 第一回 世界の骨格を作ろう

第一回 世界の骨格を作ろう

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スクリプト自体がウィンドウとなります。

Example.cs
using UnityEngine;
using System.Collections;
using UnityEditor;

public class Example : EditorWindow {

}

そしてウィンドウを表示するためのスクリプトは以下のようになります。

Example.cs
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メソッドを呼び出します。

Example.cs
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を支配する第一歩を踏み出しました。

次回

つづかない

以上ネタでしたー

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
7