プログラミング逆引き辞典

~ 多言語対応のプログラミングレシピ ~

Unity3D デフォルトフォルダの自動生成スクリプト

プロジェクトの作成ごとにAssetsフォルダ内にScriptsフォルダやPrefabフォルダ等を作成するのが面倒になったので、よく使うフォルダを自動生成するスクリプトを作成する方法
 
 

■①空のオブジェクトとスクリプトを作成

ヒエラルキーウィンドウで「右クリック」⇒「Create Empty」で空のオブジェクト(名称:GameObjet)を作成
プロジェクトウィンドウの「Assets」フォルダ内にスクリプト(名称:CreateDir.cs)を作成
スクリプトを空のオブジェクトにアタッチ
 

 
 


■②スクリプトを編集

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;

public class CreateDir : MonoBehaviour
{
    //作成フォルダ名
    private const string Scripts = "Scripts/";
    private const string Prefabs = "Prefabs/";
    private const string Resources = "Resources/";
    private const string Animations = "Animations/";
    private const string Audio = "Audio/";
    private const string Materials = "Materials/";
    private const string Timelines = "Timelines/";
    private const string Editor = "Editor/";
    private const string Textures = "Textures/";

    //作成フォルダの上位階層(Assets)
    private const string Assets = "Assets/";

    //作成フォルダのリスト
    List<string> dirList =
        new List<string> {
            Scripts
            ,Prefabs
            ,Resources
            ,Animations
            ,Audio
            ,Materials
            ,Timelines
            ,Editor
            ,Textures
        };

    void Start() {
        //フォルダパスのリスト
        List<string> dirPath = CreatePath(Assets, dirList);

        //フォルダ作成
        foreach (string dir in dirPath) {
            //フォルダが存在しない場合
            if (!Directory.Exists(dir)) {
                //フォルダを作成
                Directory.CreateDirectory(dir);
                //コンソール出力
                Debug.Log("Create folder success :" + dir);
            } else {
                //フォルダが既に存在する場合
                Debug.Log("Exists foler :" + dir);
            }
        }
    }

    /**
    * フォルダパスのリストを作成
    * フォルダ名に第1パラメーターの文字列を連結する
    */
    private List<string> CreatePath(string Assets, List<string> dirList) {
        //フォルダパスのリストを格納する変数
        List<string> dirPath = new List<string>();

        //フォルダ名に第1パラメーターの文字列を連結
        foreach (string dir in dirList) {
            string path = Assets + dir;
            dirPath.Add(path);
        }

        return dirPath;
    }
}

 
 


■③プロジェクトを再生してフォルダを作成

下記手順を実行
1.プロジェクトを再生
2.コンソールのログを確認
 ・作成された場合は「Create folder success :フォルダ名」と表示される
 ・既に作成対象のフォルダが存在する場合は「"Exists foler :フォルダ名"」と表示される
3.プロジェクトの再生を停止
4.Assetsフォルダを「右クリック」⇒「Refresh」を押下
5.フォルダが作成されていることを確認
 
 


 
 


■④①で作成した空のオブジェクトとスクリプトを削除

①で作成したものはもう不要なので削除する