유니티 특수 폴더 이름
Unity 특수 폴더 정리
Unity에는 폴더의 이름 자체가 특별한 의미를 가지는 폴더가 있습니다.
일반 폴더와 달리 특정 이름을 사용하면 Unity가 해당 폴더 안의 파일을 특별한 방식으로 처리합니다.
참고: 아래 내용은 Unity 2018.4 매뉴얼 기준입니다.
1. Assets
역할
Unity 프로젝트에서 사용하는 모든 에셋의 기본 루트 폴더입니다.
MyProject
└─ Assets
├─ Scripts
├─ Prefabs
├─ Materials
└─ ...
특징
- Unity 프로젝트에서 사용하는 대부분의 파일이 들어갑니다.
- 스크립트, 이미지, 프리팹, 머티리얼, 사운드 등을 저장합니다.
- Unity의
Project창에서 보이는 파일들은 기본적으로Assets폴더와 연결됩니다. - 다른 특수 폴더들도 대부분
Assets안에 위치합니다.
핵심 정리
Assets= Unity 프로젝트의 모든 에셋이 들어가는 최상위 폴더
2. Editor
역할
게임 자체가 아니라 Unity Editor의 기능을 확장하기 위한 스크립트를 넣는 폴더입니다.
Assets
├─ Scripts
│ └─ Player.cs
│
└─ Editor
└─ CustomInspector.cs
특징
Editor폴더 안의 스크립트는 에디터 전용 코드로 처리됩니다.- 실제 게임 빌드에는 포함되지 않습니다.
- Custom Inspector, Editor Window 등 Unity 편집 도구를 만들 때 사용합니다.
Assets폴더 내부에 여러 개 만들 수 있습니다.
사용 예
- Custom Inspector
- Editor Window
- 에디터용 자동화 도구
- 커스텀 메뉴
핵심 정리
Editor= Unity Editor 전용 코드를 넣는 폴더
3. Editor Default Resources
역할
Editor 스크립트에서 사용할 이미지나 기타 리소스를 저장하는 폴더입니다.
Assets
└─ Editor Default Resources
└─ Icons
└─ MyIcon.png
사용 API
EditorGUIUtility.Load(...)
특징
- 프로젝트에 하나만 존재할 수 있습니다.
- 반드시
Assets바로 아래에 위치해야 합니다.
Assets/Editor Default Resources
- 에디터 확장 기능에서 필요한 아이콘이나 이미지를 저장할 때 사용합니다.
핵심 정리
Editor Default Resources= Editor 기능에서 사용할 리소스 저장 폴더
4. Gizmos
역할
Unity의 Scene 뷰에서 개발용 아이콘이나 시각적 표시를 보여주기 위한 리소스를 저장합니다.
Assets
└─ Gizmos
└─ EnemyIcon.png
사용 API
Gizmos.DrawIcon(...)
활용 예
- Enemy Spawn Point 표시
- NPC 위치 표시
- Camera 위치 표시
- Trigger 위치 확인
- 특정 GameObject를 아이콘으로 구분
특징
- 프로젝트에 하나의
Gizmos폴더를 사용합니다. Assets바로 아래에 위치합니다.- Scene 뷰에서 개발자가 오브젝트를 쉽게 확인할 수 있도록 도와줍니다.
핵심 정리
Gizmos= Scene 뷰에서 개발용 아이콘이나 표시를 보여주는 폴더
5. Plugins
역할
Unity 외부에서 만들어진 플러그인이나 라이브러리를 넣는 폴더입니다.
Assets
└─ Plugins
├─ MyPlugin.dll
└─ NativePlugin.dll
특징
- 외부 DLL이나 네이티브 라이브러리를 Unity에서 사용할 때 활용합니다.
- C#, C, C++ 등으로 만들어진 외부 기능을 Unity 프로젝트에 추가할 수 있습니다.
- Unity가 해당 파일을 일반 에셋이 아니라 플러그인으로 처리합니다.
활용 예
- 외부 DLL
- 네이티브 플러그인
- 외부 SDK
- 플랫폼별 기능
핵심 정리
Plugins= Unity에 외부 라이브러리나 기능을 추가하는 폴더
6. Resources
역할
게임 실행 중에 스크립트를 이용해 에셋을 동적으로 불러오기 위한 폴더입니다.
Assets
└─ Resources
└─ Prefabs
└─ Enemy.prefab
사용 API
Resources.Load(...)
예제
GameObject enemy =
Resources.Load<GameObject>("Prefabs/Enemy");
실제 파일 경로가
Assets/Resources/Prefabs/Enemy.prefab
이라면 Resources.Load()에서는 Resources 부분과 확장자를 제외합니다.
Resources.Load<GameObject>("Prefabs/Enemy");
특징
Assets내부에 여러 개의Resources폴더를 만들 수 있습니다.- 게임 실행 중 에셋을 불러올 수 있습니다.
- 경로를 문자열로 지정하여 에셋을 찾습니다.
- 프로젝트 규모가 커지면 에셋과 메모리 관리가 복잡해질 수 있습니다.
Addressables와 비교
예전에는 동적 에셋 로딩에 Resources를 많이 사용했습니다.
규모가 큰 프로젝트에서는 에셋 로딩과 메모리를 보다 체계적으로 관리하기 위해 Addressables를 사용하는 경우가 많습니다.
Resources
→ 간단한 런타임 에셋 로딩
Addressables
→ 대규모 에셋의 로딩 + 메모리 + 의존성 관리
핵심 정리
Resources=Resources.Load()를 이용해 런타임에 에셋을 불러오는 폴더
7. Standard Assets
역할
Unity에서 제공하던 Standard Assets 패키지와 관련된 에셋을 저장하는 특수 폴더입니다.
Assets
└─ Standard Assets
특징
- 과거 Unity의 Standard Assets 패키지를 Import하면 사용되던 폴더입니다.
- Unity 2018.4 당시에는 스크립트 컴파일 순서에도 영향을 주는 특수 폴더였습니다.
- 현재 Unity에서는 주로 구버전 프로젝트를 이해할 때 알아두면 좋은 개념입니다.
핵심 정리
Standard Assets= 구버전 Unity의 기본 에셋 패키지에 사용되던 특수 폴더
8. StreamingAssets
역할
파일을 Unity 에셋 형태로 변환하지 않고 원본 파일 그대로 빌드에 포함하기 위한 폴더입니다.
Assets
└─ StreamingAssets
├─ video.mp4
├─ config.json
└─ data.txt
특징
일반 에셋은 Unity가 Import 과정에서 필요한 형태로 변환합니다.
하지만 StreamingAssets 내부의 파일은 변환하지 않고 원본 상태 그대로 빌드 결과에 포함됩니다.
활용 예
- 동영상 파일
- JSON 데이터
- 텍스트 파일
- 설정 파일
- 원본 형태로 읽어야 하는 데이터
핵심 정리
StreamingAssets= 원본 파일을 그대로 빌드에 포함하는 폴더
9. Hidden Assets
Hidden Assets라는 특정 폴더가 존재하는 것은 아닙니다.
Unity가 특정 파일이나 폴더를 에셋으로 Import하지 않고 무시하는 규칙을 의미합니다.
Unity가 무시하는 대표적인 파일
| 종류 | 예시 |
|---|---|
| 숨김 파일/폴더 | OS에서 Hidden 처리 |
.으로 시작 | .git |
~로 끝남 | test~ |
cvs 이름 | cvs |
.tmp 확장자 | test.tmp |
이유
운영체제나 다른 프로그램에서 생성한 임시 파일까지 Unity 에셋으로 Import하는 것을 방지하기 위해 사용됩니다.
핵심 정리
Hidden Assets = Unity가 에셋으로 Import하지 않고 무시하는 파일 및 폴더
전체 요약
| 폴더 | 역할 | 핵심 키워드 |
|---|---|---|
Assets | 프로젝트 에셋의 최상위 폴더 | 기본 폴더 |
Editor | Unity Editor 전용 코드 | 에디터 확장 |
Editor Default Resources | Editor에서 사용할 리소스 | Editor 리소스 |
Gizmos | Scene 뷰 개발용 표시 | 아이콘 / 시각화 |
Plugins | 외부 DLL 및 플러그인 | 외부 라이브러리 |
Resources | 런타임에 에셋 로드 | Resources.Load() |
Standard Assets | 구버전 Unity 기본 에셋 | 구버전 특수 폴더 |
StreamingAssets | 원본 파일 그대로 빌드 | 원본 데이터 |
| Hidden Assets | 특정 파일을 Import하지 않음 | 무시되는 파일 |
암기용 초간단 정리
Assets
→ 모든 에셋의 기본 폴더
Editor
→ Unity Editor 전용 코드
Editor Default Resources
→ Editor에서 사용할 리소스
Gizmos
→ Scene 뷰 아이콘 및 시각화
Plugins
→ 외부 DLL / 라이브러리
Resources
→ Resources.Load()로 런타임 에셋 로딩
Standard Assets
→ 구버전 Unity 기본 에셋
StreamingAssets
→ 원본 파일 그대로 빌드에 포함
Hidden Assets
→ Unity가 Import하지 않는 파일
Resources / StreamingAssets / Addressables 비교
| 구분 | Resources | StreamingAssets | Addressables |
|---|---|---|---|
| 목적 | 런타임 에셋 로딩 | 원본 파일 보관 | 체계적인 에셋 로딩 및 관리 |
| 로딩 방식 | Resources.Load() | 파일 직접 접근 | 비동기 Address 기반 로딩 |
| 파일 변환 | Unity 에셋으로 Import | 원본 그대로 | AssetBundle 기반 관리 가능 |
| 메모리 관리 | 비교적 단순 | 직접 관리 | 참조 카운트 기반 관리 |
| 적합한 규모 | 소규모 / 간단한 기능 | JSON, 영상 등 원본 데이터 | 중·대규모 프로젝트 |
핵심
Resources는 간단한 동적 에셋 로딩,
StreamingAssets는 원본 파일 보관,
Addressables는 대규모 에셋의 로딩과 메모리 관리에 적합합니다.



