コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】uGUI の Button や Text の Inspector をエディタ拡張する方法

はじめに

uGUI の Button や Text の Inspector は通常方法でエディタ拡張することはできないですが、

https://bitbucket.org/Unity-Technologies/ui

uGUI のソースコードはオープンソースとして上記 URL で公開されているので
プロジェクトファイルをダウンロードして直接カスタマイズすることで
uGUI の Button や Text の Inspector もエディタ拡張できます

この記事では uGUI の Button の Inspector をエディタ拡張する方法を紹介していきます

手順

https://bitbucket.org/Unity-Technologies/ui/downloads/?tab=branches

上記のページにアクセスして

f:id:baba_s:20191023132558p:plain

自分が使用している Unity のバージョンの「zip」を選択します

f:id:baba_s:20191023103606p:plain

ダウンロードした「Unity-Technologies-ui-XXXX.zip」を展開します

f:id:baba_s:20191023103558p:plain

展開したフォルダの中にある「UISystem.sln」を開きます

f:id:baba_s:20191023133643p:plain

「ButtonEditor.cs」を開きます
この ButtonEditor クラスが Button の Inspector をエディタ拡張するためのクラスなので、
ButtonEditor を編集することで独自のエディタ拡張を追加することができます

f:id:baba_s:20191023133204p:plain

例えば、上記のように OnInspectorGUI 関数にボタンを表示するコードを追加します

f:id:baba_s:20191023133336p:plain

そして、コードエディタでビルドを実行します
(Visual Studio の場合はメニューの「ビルド > ソリューションのビルド」を押す)

f:id:baba_s:20191023133503p:plain

すると、「UISystem.sln」が存在するフォルダに「Output」フォルダが作られます

f:id:baba_s:20191023134325p:plain

「Output」フォルダ内の「Editor」フォルダを開いて「UnityEditor.UI.dll」をコピーします

【Unity のインストール先】\Editor\Data\UnityExtensions\Unity\GUISystem\Editor

次に、上記のフォルダを開いて

f:id:baba_s:20191023135141p:plain

「UnityEditor.UI.dll」が存在するのを見つけたら、
先ほどコピーした「UnityEditor.UI.dll」をここに貼り付けて上書きします
Unity の .dll を上書きするので、不安であればバックアップを取っておいてください

f:id:baba_s:20191023134337p:plain

これで、Unity を開いて Button コンポーネントの Inspector を見てみると
先ほど追加したボタンが Inspector に追加されていることが確認できます

このように、uGUI のソースコードを直接カスタマイズすることで
uGUI の Button や Text の Inspector をエディタ拡張することができます

関連記事