【Unity】Unity共通でエディター拡張する方法

unity-common-editor-extensions

プロジェクト作るごとにエディタースクリプト入れ直すのが面倒だったので、共通化する方法を調べてみました。

参考

こちらの記事を参考にしています。

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

共通でエディター拡張を設定する方法

スクリプトの用意

  • 参考記事のデバッグログ出すスクリプト(CustomMenu.cs)

  • Ctrl+Shift+F12でゲーム画面のスクリーンショットが撮れるスクリプト(CaptureScreenshotFromEditor.cs)

【Unity】Gameビューのスクリーンショットを撮る方法 - CGメソッド

2種類を用意

フォルダの作成

  • Unityがインストールされている場所のC:\Program Files\Unity\Editor\Data\UnityExtensions\Unityに 下記のようにフォルダを作成しました。(※UnityExtensions直下であればどこでもいいようです)
Unity
 L Custom 
  L Editor
   L CustomMenu.cs
   L CaptureScreenshotFromEditor.cs
  • スクリプトもEditorの中に格納します。

DLLの生成

  • 下記のようなバッチ(build.bat)を作成
"C:\Program Files\Unity\Editor\Data\Mono\bin\smcs.bat" -r:"C:\Program Files\Unity\Editor\Data\Managed\UnityEngine.dll" -r:"C:\Program Files\Unity\Editor\Data\Managed\UnityEditor.dll" -target:library -out:"C:\Users\ユーザー名\Desktop\EditorScript.dll" *.cs

※Unityフォルダにバージョンを入れている場合はパスを変更する

※生成する.dllは仮にEditorScript.dllとしました。

f:id:min0124:20180107210829p:plain

  • プログラムファイルは管理者権限もあるので、まずはバッチをデスクトップに置き、そこに2つのスクリプトをドラッグ&ドロップして、EditorScript.dllを生成

  • 生成された. dllをスクリプトと同階層に移動

xmlの作成

  • Editorフォルダと同階層に下記のivy.xmlを配置
Unity
 L Custom 
  L Editor
   L CustomMenu.cs
   L CaptureScreenshotFromEditor.cs
   L EditorScript.dll
  L ivy.xml

ivy.xml

<?xml version="1.0" encoding="utf-8"?>
<ivy-module version="2.0">
  <info version="2017.3.0f3" organisation="Unity" module="Custom" e:packageType="UnityExtension" e:unityVersion="2017.3.0f3" xmlns:e="http://ant.apache.org/ivy/extra" />
  <publications xmlns:e="http://ant.apache.org/ivy/extra">
    <artifact name="Editor/EditorScript" type="dll" ext="dll" e:guid="adebbd281f1a4ef3a30be7f21937e02f" />
  </publications>
</ivy-module>

※変更箇所はinfo version,organisation,module,unityVersion,artifact name

詳しく知りたい場合はこちら

Module Managerを使って自作ライブラリを読み込んでみた - けいごのなんとか

以上です。

確認

f:id:min0124:20180107211342p:plain

新規プロジェクトを作成しUnityを起動すると、メニューが表示され、またCtrl+Shift+F12でスクショも撮ることができました。

これで自作のエディター拡張制作がますます楽しくなります!