UnityのEditorスクリプト、ちゃんと使いこなせていますか?
自分も以前はほとんど使っていなかったのですが、あるときExcelのVBAのように”Unity Editor上の操作を自動化できる”と気づいてから、開発効率が大きく向上しました。
この記事では、UnityのEditor
フォルダ内に配置することで使用可能になる便利スクリプトの数々と、それによって得られた恩恵を紹介します。
Editorフォルダとは?
Unityでは、Editor
という名前のフォルダに配置されたスクリプトは、Unity Editor上でのみ実行され、ビルドには含まれないという特殊な扱いになります。
これはまさにExcelのVBAのような存在で、繰り返し作業を自動化したり、独自ツールを作って開発体験を改善できる非常に強力な仕組みです。
実際に作った便利Editorスクリプト
1. ScriptableObject一括読み込みツール
指定フォルダ内のSOをまとめて読み込んで中身を一覧表示するツール。EditorWindowを使ってGUI上で確認・編集できます。
var assets = AssetDatabase.FindAssets("t:MyDataType", new[] { "Assets/Data/" });
foreach (var guid in assets) {
var path = AssetDatabase.GUIDToAssetPath(guid);
var data = AssetDatabase.LoadAssetAtPath<MyDataType>(path);
// 表示用リストに追加
}
2. CSVインポート → SO自動生成
CSVファイルを読み込んで、各行を元にScriptableObjectを生成するスクリプトを用意。Excelでデータ作成→Unityに即反映という開発フローが実現できました。
これによりCSVが設計書兼実装になるため、意図しないバグ回避や拡張が非常に容易になる大きなメリットがあります。
3. メニュー追加 + 処理実行
[MenuItem]
属性を使って、Unityのメニューに「データ初期化」や「マスタ再生成」などの独自コマンドを追加。
[MenuItem("Tools/マスタデータ再生成")]
public static void RegenerateMaster() {
Debug.Log("再生成しました");
// 任意の処理
}
4. フォルダ内アセットの一括操作
AssetDatabase
とEditorUtility
を使い、指定フォルダ内のアセット名を変更したり、重複チェックをかけたりする自動スクリプトを用意。
EditorWindowとの併用でGUIツール化も
スクリプト単体でも便利ですが、EditorWindowを使えば専用のGUIウィンドウを作成してボタン操作で実行できるようになります。
- 確認 → 編集 → 実行がその場で完結
- 入力ミスを防げる
- 他人に渡しても使いやすい
メリットとデメリット
メリット
- 単純作業をボタンひとつにまとめられる
- 一括編集・生成が圧倒的に楽になる
- 手作業でのミスが減る
デメリット
- 最初は覚えるのに少し手間
- GUI作成に慣れが必要
- Unityのバージョンや構成に依存しやすい
まとめ:Editorフォルダは個人開発者の秘密兵器
UnityのEditorフォルダを活用することで、自分だけの効率化ツールを無限に作ることが可能になります。
繰り返し操作に違和感を感じたら、「これ、Editorスクリプトで自動化できないか?」と考えるクセをつけると、どんどん快適になっていきます。
今後は、アセットのラベル管理や、Prefabの一括置換系のスクリプトにも挑戦していく予定です。
ブログでもUnityや個人開発ネタを発信中です!
開発ノウハウやアプリ制作過程、Unity連携系のハマりポイントなど
より深掘りした内容をブログにまとめています。
▶ https://syunpp.com
公開中のアプリ一覧はこちら!
実際にUnityで開発してリリース済みのアプリ一覧をまとめています。
▶ https://syunpp.com/公開中のアプリ一覧/
YouTubeショートでもゲーム開発の裏側を公開中!
Unityで制作中のゲームの進捗や演出テスト、実装の様子を
ショート動画でタイムラプス形式にまとめて発信しています。
▶https://www.youtube.com/@syunpp_8413/shorts
コメント