22
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【UnityEditor】プロジェクトをまたいでエディター拡張したい

Last updated at Posted at 2016-07-19

この記事のUnityのバージョンはUnity5.3.5f1です.

#はじめに
通常、エディター拡張はエディタースクリプトを入れたプロジェクトにのみ適用されます。
エディター拡張を複数のプロジェクトで使いたい、となった場合は各プロジェクトに個別にスクリプトを
入れなければならないので若干手間がかかります。

そこで、プロジェクトをまたいでエディター拡張する方法はないか調べてみました。

いろいろ書いてたら長くなってしまったので実装だけ見たい方は3.エディター拡張してみるをどうぞ

#1. Editor\Data\UnityExtensions\Unityを見てみる
Editor\Data\UnityExtensions\Unityを見てみます。 (筆者はDドライブにUnityをインストールしているのでD/***になっていますが通常はCドライブにあるはずです

中にEditorTestsRunnerがありました。
image

Unityエディタのメニューにも同じものがあります。 
image

先ほどのEditorTestsRunnerフォルダは、UnityメニューのEditor Tests Runnerに相当するものではないかと気がつきました。


Editor\Data\UnityExtensions\Unityにエディタースクリプトを置けばエディター拡張できそうです。

#2. さらに中を見てみる
##EditorTestsRunner
EditorTestsRunnerフォルダの中身を見てみると、このような構成になっていました
image

##TreeEditor
TreeEditorフォルダの場合はこのような構成になっていました
image


以下の2つのファイルがあれば良さそうだと読み取れます。 ・ivy.xml ・Editor/(エディタースクリプト名).dll

以上を踏まえてエディター拡張してみます。

#3. エディター拡張してみる
##フォルダを作成
まず、Editor\Data\UnityExtensions\Unityの中にフォルダを作成します。フォルダ名はTestとしておきます。
image

Testフォルダの中にはEditorフォルダを作っておきます。
image

##スクリプト作成
以下のスクリプトを作成し、Editorフォルダへ入れます。

TestClass.cs
using UnityEngine;
using UnityEditor;

public class TestClass
{
    [MenuItem("TestMenu/Test")]
    static void TestMethod ()
    {
        Debug.Log ("TestMethod");
    }
}

##DLLへ変換
Editorフォルダの中に以下のbatファイルを作成&実行してTestClass.csをDLLへ変換します。

build.bat
smcs.batのファイルパス -r:"UnityEngine.dllのファイルパス" -r:"UnityEditor.dllのファイルパス" -target:library -out:Test.dll *.cs

image

参考 : 【Unity5】UnityスクリプトをDLLファイル化する方法

##xmlの作成
Testフォルダ直下にivy.xmlを作成します

ivy.xml
<?xml version="1.0" encoding="utf-8"?>
<ivy-module version="2.0">
  <info version="5.3.5" organisation="TestOrganisation" module="TestModule" e:packageType="UnityExtension" e:unityVersion="5.3.5f1" xmlns:e="http://ant.apache.org/ivy/extra" />
  <publications xmlns:e="http://ant.apache.org/ivy/extra">
    <artifact name="Editor/Test" type="dll" ext="dll" e:guid="adebbd281f1a4ef3a30be7f21937e02f" />
  </publications>
</ivy-module>

info version, e:unityVersion にはお使いのUnityのバージョンを指定してください


ここまで終えると以下のような構成になっているはずです。 ![image](https://qiita-image-store.s3.amazonaws.com/0/44288/f557db50-5502-4983-383a-b68e361dbaab.png)

以上でエディター拡張は完了となります。

#4. Unityを起動
エディター拡張がうまく動いているかを確認するため、新規UnityProjectを作成してみます。

#5. 結果

メニューが追加されていることが確認できました。 Assetsフォルダには何も入れてません。

プロジェクトをまたいでエディター拡張することができました。(完)


##余談 Testフォルダは以下のように配置してもOKなようです。 ![image](https://qiita-image-store.s3.amazonaws.com/0/44288/2fbdb90b-b59d-2395-6622-a0c5c1e54de6.png) フォルダの場所はUnityExtensionsフォルダ以下であればどこにおいても認識されるのかもしれません

#参考URL
Module Managerを使って自作ライブラリを読み込んでみた - けいごのなんとか
http://anchan828.hatenablog.jp/entry/2014/10/15/231013

22
24
0

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
  3. You can use dark theme
What you can do with signing up
22
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?