【Unity】Asset直下にフォルダ階層を作成するC#スクリプトのつくりかた

バーチャル

普段Unityで3Dモデルを撮影して楽しんでいます。撮影するにあたっていろんなツールや服、アクセサリーなどをUnitypackageからインポートしているのですが、たくさんインポートするとAssetフォルダがめちゃめちゃ汚くなってしまいます。そこでAssetフォルダを以下のように構成することにしました。

  • M_モデル
    • F_fbx
    • V_vrm
  • F_服
    • F_fbx
    • T_tex
  • A_アクセサリ
  • W_ワールド小物
  • S_スクリプト
  • Scene
  • StreamingAssets

わかりやすくなりましたが、Unityプロジェクトをつくるたびにこれらのフォルダをつくるのは面倒です。そこで勉強がてらc#でUnityのエディター拡張をつくり、ボタンを押すと上記のフォルダが生成されるようにしてみました。

コード

using UnityEditor;
using System.IO;
public class SetFirstFolder : EditorWindow
{
    [MenuItem("フォルダ生成/Vphoto用")]
    static void CreateFolder()
    {
        string[] folderName = { "M_モデル/F_fbx", "M_モデル/V_vrm", "F_服/F_fbx", "F_服/T_tex","A_アクセサリ", "W_ワールド小物", "S_スクリプト", "StreamiingAssets" };
        for(int i = 0; i < 8; i++) {
            Directory.CreateDirectory("Assets/" + folderName[i]);
            AssetDatabase.ImportAsset("Assets/" + folderName[i]);
        }
        
    }
}

string[] folderName = ~の部分を変えればお好みのフォルダ名で生成できると思います

使い方

上記のコードをメモ帳などにコピーして「createfolder.cs」などの名前でAsset直下に保存してください。

Asset直下のパスがわからない方は

プロジェクトビューの「Assets」を選択して右クリック>Show in Exploerをクリック。

エクスプローラーが開かれるのでAssetsをクリック。

赤い丸部分をクリックするか、Alt+Dでパスに移動してコピーします。

名前をつけて保存するときに同様に赤い丸部分をクリックするか、Alt+Dでパスに移動して、先ほどコピーしたパスを貼り付けてエンターを押して保存すると、Asset直下のパスにスクリプトを保存できます。

あとは上に追加されたフォルダ生成>Vphoto用をクリックするとフォルダが一気に生成されます!

参考

c#は書いたことなかったので下記とても参考になりました!

【Unity(C#)】毎回使う複数のフォルダをワンクリックで作成する方法 - Qiita
この記事は『プログラミング完全未経験からUnityでの開発現場に迎え入れてもらえた世界一の幸せ者』の記事です。そのつもりでお読みください。##弊社には最強のエンジニアがおります私は今の会社に入社する前、Unityで新しいプロジェクトを作成したとき(入社直前に不安過ぎて予習してた)…

おまけ:指定パスにUnityパッケージを展開するツール

ふつう、UnitypackageをドラッグアンドドロップなどでインポートするとすべてAsset直下にインポートされてしまいます。今回のようにフォルダ分けしたいときには、以下のようなツールを使うのがおすすめ。

UnityPackageUnPacker - CHIU SHOP - BOOTH
このツールはunitypackageを指定フォルダに展開できるツールです! ■ 使用方法 ツールを起動してunitypackage・展開先を選択してUnPackボタンを押します。 unitypackageを開く方法はいくつか用意してあります。 ・ツールを起動して「開く」ボタンから選択 ・ツールを開いてウィンドウにドラッ...
指定したパスにUnitypackageを展開できるツール「UnityPackageUnPacker」が便利!
...

使い方もまとめたので、お役に立てば幸いです!

コメント

タイトルとURLをコピーしました