728x90
Unity - 폴더 자동생성 패키지 제작하기
유니티에서 매번 프로젝트를 만들때 폴더를 일일이 생성해 주는것이 너무 귀찮아서 자주 사용하는 폴더를 자동으로 생성해주는 간단한 폴더가 있으면 좋겠다고 생각하여 만들어 보았다. 1. names
rimugiri.tistory.com
위 글에서 폴더까지 자동으로 생성하는 것을 다루었지만 기본적으로 프로젝트를 만들때 Manager단위의 파일들도 대부분 생성한다는 것을 깨닳아 파일도 처음부터 생성하게 만들고 싶어 코드를 수정하였다
using System.IO;
using UnityEditor;
using static System.IO.Directory;
using static System.IO.Path;
using static UnityEditor.AssetDatabase;
using static UnityEngine.Application;
namespace PKW
{
public static class FastProjectMaker
{
// 옵션창에 PKW_Tool메뉴가 추가된다
[MenuItem("PKW_Tool/FastProjectMaker")]
public static void CreateDefaultProject()
{
string rootProjectName = "_Project";
CreateDefaultFolders(rootProjectName);
CreateDefaultScripts(rootProjectName);
Refresh();
}
private static void CreateDefaultFolders(string root)
{
// 순서대로 root 디렉토리의 이름 그다음은 그안에 생성시킬 폴더들을 나열하면 된다
CreateDirectorys(root, "1.Arts", "2.Scripts", "3.Prefabs", "4.Resources", "5.ScriptableObjects", "6.Scenes");
}
private static void CreateDirectorys(string root, params string[] dir)
{
string fullPath = Combine(dataPath, root);
foreach (string newDirectory in dir)
{
CreateDirectory(Combine(fullPath, newDirectory));
}
}
private static void CreateDefaultScripts(string root)
{
string scriptPath = Combine(dataPath, root, "2.Scripts");
// 일반적인 스크립트 생성 방법
// string testScrip = "TestScript";
// CreateScript(scriptPath, testScrip, BaseTemplate);
// Manager 스크립트 생성 방법
string[] createManagerScripts = new string[]
{
"GameManager",
"DataManager",
"ResourceManager",
"UIManager",
"SoundManager",
"EffectManager",
"InputManager",
};
foreach (string scriptName in createManagerScripts)
{
CreateManagerScripts(scriptPath, scriptName, BaseTemplate);
}
}
private static void CreateScript(string path, string scriptName, string template)
{
string fullPath = Combine(path, scriptName + ".cs");
if (!File.Exists(fullPath))
{
File.WriteAllText(fullPath, template.Replace("#SCRIPTNAME#", scriptName));
}
}
private static void CreateManagerScripts(string path, string scriptName, string template)
{
path = Combine(path, "Managers");
if (!File.Exists(path))
{
CreateDirectory(path);
}
CreateScript(path, scriptName, BaseTemplate);
}
private static string BaseTemplate =
@"using UnityEngine;
public class #SCRIPTNAME# : MonoBehaviour
{
void Init()
{
}
}";
}
}
과정은 위 글과 같으니 코드만 수정해 주면 파일까지 자동생성이 완료 된다.
728x90
'unity > 유니티 Tools' 카테고리의 다른 글
Unity Tool - 버튼 attribute 만들기 (0) | 2024.10.25 |
---|---|
유니티 TreeView를 활용한 Custom tool 만들기 (0) | 2024.07.30 |
유니티 폴더 및 스크립트 초기 생성 ver.2- 유니티 툴제작 (0) | 2024.07.25 |
Unity - 폴더 자동생성 패키지 제작하기 (0) | 2024.02.23 |