728x90
반응형

Unity에서 특별한 폴더들과 폴더들의 역할
Unity 프로젝트를 구조적으로 관리하기 위해서는 폴더 구조의 이해와 사용이 매우 중요합니다. Unity는 특정 이름을 가진 폴더들에 대해 특별한 동작을 수행하며, 이 외에도 커뮤니티나 실무에서 관례적으로 사용되는 폴더 구조가 존재합니다. 이번 글에서는 Unity에서 특별한 의미를 가지는 폴더들과 관례적으로 사용되는 폴더 구조에 대해 정리해보겠습니다.
1. Unity에서 특별한 의미를 가지는 폴더들
Unity는 특정 폴더명을 가진 디렉토리에 대해 특별한 처리 과정을 적용합니다. 이러한 폴더는 프로젝트 전체의 동작이나 빌드, 에디터 환경 등에 영향을 미치므로 정확히 이해하고 사용하는 것이 중요합니다.
▷ Editor
- Assets/Editor 폴더 내부에 있는 스크립트는 Unity 에디터 실행 중에만 동작합니다.
- 런타임 빌드에는 포함되지 않으며, 사용자 정의 에디터 툴이나 커스텀 인스펙터 등을 구현할 때 사용합니다.
▷ Resources
- Resources 폴더 안에 있는 에셋은 Resources.Load()를 통해 런타임에 동적으로 로드할 수 있습니다.
- 하지만 과도한 사용은 빌드 파일 크기 증가 및 메모리 관리 문제를 야기할 수 있으므로 주의가 필요합니다.
▷ StreamingAssets
- StreamingAssets 폴더의 파일은 플랫폼에 따라 원본 그대로 번들링되어 저장됩니다.
- 동영상, 설정 파일, 외부 플러그인 등 압축되지 않은 원본 데이터를 저장할 때 유용합니다.
▷ Plugins
- Plugins 폴더는 네이티브 코드(.dll, .so, .jar 등) 또는 외부 라이브러리를 포함할 때 사용됩니다.
- 플랫폼별로 세부 디렉토리를 나누어 관리할 수 있습니다 (예: Plugins/iOS, Plugins/Android).
▷ Gizmos
- Gizmos 폴더에 포함된 이미지나 리소스는 Scene 뷰에서 Gizmo를 시각화할 때 사용됩니다.
▷ Editor Default Resources
- 에디터 전용 리소스를 Editor Default Resources 폴더에 넣으면, 에디터 코드에서만 EditorGUIUtility.Load()를 통해 로드할 수 있습니다.
▷ Standard Assets, Pro Standard Assets, Plugins
- Unity 2017 이전 버전에서 스크립트 컴파일 순서를 구분하기 위해 사용되었습니다. 현재는 덜 쓰이지만, 컴파일 타이밍에 영향이 있는 경우 여전히 쓰입니다.
2. 실무 및 커뮤니티에서 관례적으로 사용되는 폴더 구조
Unity 프로젝트를 구성할 때, 팀 단위 개발 혹은 프로젝트 규모가 커질수록 폴더의 일관성과 명확한 분리가 매우 중요합니다. 다음은 관례적으로 많이 사용하는 폴더 구조입니다.
▷ Scripts
- C# 스크립트를 보관하는 폴더입니다.
- 기능별, 역할별로 하위 폴더를 구성하는 것이 일반적입니다. 예: Scripts/Managers, Scripts/Player, Scripts/UI
▷ Prefabs
- 미리 설정해둔 GameObject를 보관합니다.
- 재사용이 많은 요소들(캐릭터, 오브젝트, 이펙트 등)을 Prefab으로 저장하고 관리합니다.
▷ Scenes
- 게임의 씬 파일들을 보관하는 폴더입니다.
- 씬의 종류에 따라 Scenes/Main, Scenes/UI, Scenes/Battle 등으로 나누는 것이 좋습니다.
▷ Art / Sprites / Textures
- 아트 에셋을 저장하는 폴더입니다.
- 2D 게임이라면 Sprites, 3D 게임이라면 Textures 또는 Models로 세분화합니다.
▷ Materials
- Material 에셋들을 모아둡니다. 쉐이더 기반, 오브젝트 기반으로 분류할 수 있습니다.
▷ Animations
- 애니메이션 클립(.anim)과 애니메이터 컨트롤러(.controller)를 저장합니다.
▷ Audio / Sounds
- 배경음악(BGM), 효과음(SFX) 등 오디오 관련 에셋을 저장합니다.
▷ UI
- UI 관련 프리팹, 이미지, 폰트 등을 보관하는 폴더입니다. UI/Prefabs, UI/Sprites, UI/Fonts 등으로 세분화됩니다.
Unity 프로젝트에서 폴더 구조는 단순한 정리를 넘어, 협업, 유지보수, 최적화까지 영향을 미칩니다. Unity에서 특별하게 취급하는 폴더는 반드시 그 용도를 알고 적절히 사용해야 하며, 일반적인 폴더 구조 또한 프로젝트 성격에 맞게 잘 구성하는 것이 중요합니다.
처음에는 다소 복잡하게 느껴질 수 있으나, 일관된 폴더 구조를 습관화하면 장기적으로 큰 도푹움이 될 것입니다.
추가적인 세부사항이 궁금하다면
https://docs.unity3d.com/kr/2018.4/Manual/SpecialFolders.html
Unity Documentation을 참고 부탁드립니다.
728x90
반응형
'Unity' 카테고리의 다른 글
| Unity에서 CompareTag를 사용하는 이유와 주의사항 (0) | 2025.04.15 |
|---|---|
| Unity 애니메이션에 대하여 (0) | 2025.04.14 |
| Unity에서 방향 벡터 계산 시 실수하기 쉬운 예시 (0) | 2025.04.11 |
| Unity 전처리 지시문(Preprocessor Directive)과 XML 주석 (0) | 2025.04.08 |
| Unity 유한상태머신 (FSM)에 대하여 (0) | 2025.04.07 |