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.フォルダが作成されていることを確認
■④①で作成した空のオブジェクトとスクリプトを削除
①で作成したものはもう不要なので削除する