【Editor拡張】再帰的にマテリアルを割り当てるツールを作った

余談

来週にはunity1weekが開催されますね!


今回、私はMetaFormer様、並びに湊あおい様が企画されている
unity1week Team-Up!!に参加させていただいております!

私も参加してます。これをお読みのあなたもぜひ! まだ間に合います!

本題

SpriteStudioというものがございまして!
www.webtech.co.jp

今回のUnity1weekで使用しようとしているアプリケーションです。
2Dアニメーションで使用されているらしい。なるほどなるほど。

公開されている公式のインポートツールを使ってURP環境のUnityに持ってきます。
Unityエディターバージョンは2022.3.4f1。
assetstore.unity.com

マテリアルがピンクに…!
SpriteRendererにマテリアルが割り当てられていないのが原因ですね。

で、すべてのSpriteRendererに直接マテリアルを割り当ててもいいんですが、
階層が複雑かつ人力でやるにはあまりにも非効率なので
一括で割り当てるツールを作りました。

ソースコード

ソースコードはこちら。
一つのScriptファイルに2つのクラスが存在しますが、実際には分けてます。

余談2

今回、初めてUIBuilderを使ってウィンドウを作成しました。
下手すれば初めて目的をもったEditor拡張を作ったかもしれない。
docs.unity3d.com

あくまで個人的な話になるのですが、今までEditor拡張ってどうしても
最終の表示されるウィンドウのイメージを考えながら作るのが
かなりニガテだったので避けていた
のですが、
イメージしたものをUIBuilderを使用してGUIでサクッとつくることが作成できて便利。

Editorで使用するObjectField等は、
Libraryの詳細ボタンを押すと使用できるようになります。

UIBuilderを使ったEditor拡張については
Unity Learning Materialに投稿されていた動画で概要を掴み、
そこから既存のEditorのHow to記事を読み漁って作成していきました。
learning.unity3d.jp

何も情報がないところから自分なりにいいものを作り上げられて楽しかったです。
作りたいツールができて満足です。単調な作業とはおさらばだ…。

参考にしたサイト

UIElements と UI Builder で Editor拡張を作ろう | Unity Learning Materials
ユーザーガイド | OPTPiX Help Center
Home · SpriteStudio/SS6PlayerForUnity Wiki · GitHub