유니티 특수 폴더 이름

심지태
∙∙조회 10

Unity 특수 폴더 정리

Unity에는 폴더의 이름 자체가 특별한 의미를 가지는 폴더가 있습니다.

일반 폴더와 달리 특정 이름을 사용하면 Unity가 해당 폴더 안의 파일을 특별한 방식으로 처리합니다.

참고: 아래 내용은 Unity 2018.4 매뉴얼 기준입니다.


1. Assets

역할

Unity 프로젝트에서 사용하는 모든 에셋의 기본 루트 폴더입니다.

text
MyProject
└─ Assets
   ├─ Scripts
   ├─ Prefabs
   ├─ Materials
   └─ ...

특징

  • Unity 프로젝트에서 사용하는 대부분의 파일이 들어갑니다.
  • 스크립트, 이미지, 프리팹, 머티리얼, 사운드 등을 저장합니다.
  • Unity의 Project 창에서 보이는 파일들은 기본적으로 Assets 폴더와 연결됩니다.
  • 다른 특수 폴더들도 대부분 Assets 안에 위치합니다.

핵심 정리

Assets = Unity 프로젝트의 모든 에셋이 들어가는 최상위 폴더


2. Editor

역할

게임 자체가 아니라 Unity Editor의 기능을 확장하기 위한 스크립트를 넣는 폴더입니다.

text
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 스크립트에서 사용할 이미지나 기타 리소스를 저장하는 폴더입니다.

text
Assets
└─ Editor Default Resources
   └─ Icons
      └─ MyIcon.png

사용 API

csharp
EditorGUIUtility.Load(...)

특징

  • 프로젝트에 하나만 존재할 수 있습니다.
  • 반드시 Assets 바로 아래에 위치해야 합니다.
text
Assets/Editor Default Resources

  • 에디터 확장 기능에서 필요한 아이콘이나 이미지를 저장할 때 사용합니다.

핵심 정리

Editor Default Resources = Editor 기능에서 사용할 리소스 저장 폴더


4. Gizmos

역할

Unity의 Scene 뷰에서 개발용 아이콘이나 시각적 표시를 보여주기 위한 리소스를 저장합니다.

text
Assets
└─ Gizmos
   └─ EnemyIcon.png

사용 API

csharp
Gizmos.DrawIcon(...)

활용 예

  • Enemy Spawn Point 표시
  • NPC 위치 표시
  • Camera 위치 표시
  • Trigger 위치 확인
  • 특정 GameObject를 아이콘으로 구분

특징

  • 프로젝트에 하나의 Gizmos 폴더를 사용합니다.
  • Assets 바로 아래에 위치합니다.
  • Scene 뷰에서 개발자가 오브젝트를 쉽게 확인할 수 있도록 도와줍니다.

핵심 정리

Gizmos = Scene 뷰에서 개발용 아이콘이나 표시를 보여주는 폴더


5. Plugins

역할

Unity 외부에서 만들어진 플러그인이나 라이브러리를 넣는 폴더입니다.

text
Assets
└─ Plugins
   ├─ MyPlugin.dll
   └─ NativePlugin.dll

특징

  • 외부 DLL이나 네이티브 라이브러리를 Unity에서 사용할 때 활용합니다.
  • C#, C, C++ 등으로 만들어진 외부 기능을 Unity 프로젝트에 추가할 수 있습니다.
  • Unity가 해당 파일을 일반 에셋이 아니라 플러그인으로 처리합니다.

활용 예

  • 외부 DLL
  • 네이티브 플러그인
  • 외부 SDK
  • 플랫폼별 기능

핵심 정리

Plugins = Unity에 외부 라이브러리나 기능을 추가하는 폴더


6. Resources

역할

게임 실행 중에 스크립트를 이용해 에셋을 동적으로 불러오기 위한 폴더입니다.

text
Assets
└─ Resources
   └─ Prefabs
      └─ Enemy.prefab

사용 API

csharp
Resources.Load(...)

예제

csharp
GameObject enemy =
    Resources.Load<GameObject>("Prefabs/Enemy");

실제 파일 경로가

text
Assets/Resources/Prefabs/Enemy.prefab

이라면 Resources.Load()에서는 Resources 부분과 확장자를 제외합니다.

csharp
Resources.Load<GameObject>("Prefabs/Enemy");

특징

  • Assets 내부에 여러 개의 Resources 폴더를 만들 수 있습니다.
  • 게임 실행 중 에셋을 불러올 수 있습니다.
  • 경로를 문자열로 지정하여 에셋을 찾습니다.
  • 프로젝트 규모가 커지면 에셋과 메모리 관리가 복잡해질 수 있습니다.

Addressables와 비교

예전에는 동적 에셋 로딩에 Resources를 많이 사용했습니다.

규모가 큰 프로젝트에서는 에셋 로딩과 메모리를 보다 체계적으로 관리하기 위해 Addressables를 사용하는 경우가 많습니다.

text
Resources
→ 간단한 런타임 에셋 로딩

Addressables
→ 대규모 에셋의 로딩 + 메모리 + 의존성 관리

핵심 정리

Resources = Resources.Load()를 이용해 런타임에 에셋을 불러오는 폴더


7. Standard Assets

역할

Unity에서 제공하던 Standard Assets 패키지와 관련된 에셋을 저장하는 특수 폴더입니다.

text
Assets
└─ Standard Assets

특징

  • 과거 Unity의 Standard Assets 패키지를 Import하면 사용되던 폴더입니다.
  • Unity 2018.4 당시에는 스크립트 컴파일 순서에도 영향을 주는 특수 폴더였습니다.
  • 현재 Unity에서는 주로 구버전 프로젝트를 이해할 때 알아두면 좋은 개념입니다.

핵심 정리

Standard Assets = 구버전 Unity의 기본 에셋 패키지에 사용되던 특수 폴더


8. StreamingAssets

역할

파일을 Unity 에셋 형태로 변환하지 않고 원본 파일 그대로 빌드에 포함하기 위한 폴더입니다.

text
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프로젝트 에셋의 최상위 폴더기본 폴더
EditorUnity Editor 전용 코드에디터 확장
Editor Default ResourcesEditor에서 사용할 리소스Editor 리소스
GizmosScene 뷰 개발용 표시아이콘 / 시각화
Plugins외부 DLL 및 플러그인외부 라이브러리
Resources런타임에 에셋 로드Resources.Load()
Standard Assets구버전 Unity 기본 에셋구버전 특수 폴더
StreamingAssets원본 파일 그대로 빌드원본 데이터
Hidden Assets특정 파일을 Import하지 않음무시되는 파일

암기용 초간단 정리

text
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 비교

구분ResourcesStreamingAssetsAddressables
목적런타임 에셋 로딩원본 파일 보관체계적인 에셋 로딩 및 관리
로딩 방식Resources.Load()파일 직접 접근비동기 Address 기반 로딩
파일 변환Unity 에셋으로 Import원본 그대로AssetBundle 기반 관리 가능
메모리 관리비교적 단순직접 관리참조 카운트 기반 관리
적합한 규모소규모 / 간단한 기능JSON, 영상 등 원본 데이터중·대규모 프로젝트

핵심

Resources는 간단한 동적 에셋 로딩,
StreamingAssets는 원본 파일 보관,
Addressables는 대규모 에셋의 로딩과 메모리 관리에 적합합니다.