(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


画像の分割設定を同期するエディタ拡張 【Unity】【エディタ拡張】


このエントリーをはてなブックマークに追加



この記事でのバージョン
Unity 6000.1.11f1


はじめに

UnityではMultipleモードを使うことで、1枚の画像に複数のSpriteを設定出来ます。


サイズなどを指定し、自動で分割も出来るのでかなり便利なのですが、


キャラクターの色違いの画像がある場合など、

同じように分割したい場合に全部に設定するのは結構大変です。


そんな時に便利な、metaファイルをコピーする方法を以前、紹介したのですが、


この方法でもコピーする数が多かったり、後から設定を変えたくなった時にはまだ大変でした。


ということで、テンプレート画像と同じインポート設定をフォルダ内の全テクスチャに自動適用する

エディタ拡張を作ったので、今回はそれの紹介です!



TextureImportSettingsSynchronizer

さっそくですが、そのエディタ拡張のTextureImportSettingsSynchronizerのコードです。



これをEditor以下のフォルダに入れて

TEMPLATE_PATHとTARGET_FOLDERのパスを好きな所に設定すれば準備完了。

//テンプレートと対象フォルダ
private const string TEMPLATE_PATH = "Assets/Template.png";
private static readonly string TEMPLATE_BASE = Path.GetFileNameWithoutExtension(TEMPLATE_PATH);
private const string TARGET_FOLDER = "Assets/Textures/Target";


例えば上記の設定のままだと以下のような感じで、自動で設定を同期します。

(対象のフォルダに入れた時に設定がコピーされる感じ)


また、上部のメニューのToos/Sync Texture With Templateを押すことで、

テンプレ画像の設定を、対象フォルダ内の画像全てに後から反映することも可能です。


なお、完全に透明な画像の分割はしないようにしてるので、


もし透明な画像も分割したい場合は、以下をコメントアウトなどで無効にしてください。

//透明チェック、完全透明はスキップ
if (IsRectFullyTransparent(rawTex, s.rect)) {
  continue;
}