[Unity] 특수 폴더

Jongmin Kim·2025년 5월 20일

Unity

목록 보기
5/19
post-thumbnail

서론

Unity에서는 폴더의 이름을 작성할 때 어떤 이름을 사용해서든 생성할 수 있다. 하지만 예외적인 예약된 폴더의 이름이 존재하며, 이들을 적절히 사용하는 것은 중요하다.


Assets

Assets 폴더는 Unity 프로젝트에서 사용하는 에셋이 포함되는 주 폴더다. 에디터 프로젝트 창의 컨텐츠는 모두 에셋 폴더의 컨텐츠와 직접적인 연관성을 지닌다.

대부분의 API 함수는 에셋 폴더에 있다고 가정하므로 이 API들을 사용할 때 명시적으로 경로를 지정할 필요가 없다.


Editor

Editor 폴더 내부에 존재하는 스크립트들은 에디터 스크립트며, 런타임 스크립트가 아니다.

이 스크립트는 개발하는 동안 에디터에 기능을 부여할 때 사용하며 런타임 시점에 사용할 수 없기 때문에 에디터 스크립트를 하나라도 사용하면 빌드에서 오류가 발생한다.

에디터 스크립트는 \Assets\Editor에 존재하며 스크립트 컴파일 순서에 영향을 주는데, 이는 공식 문서에서 확인하도록 하자.


Editor Default Resources

에디터 스크립트는 요구가 있을 때 에셋 파일을 로드하기 위해 EditorGUIUtility.Load()를 사용한다.
이 함수는 Editor Default Resources 폴더에서 해당 에셋 파일을 검색한다.

Editor Default Resources 폴더는 하나만 존재할 수 있으며 Assets 폴더의 바로 하위에 존재해야만 한다.
또한 필요한 에셋 파일을 Editor Default Resources 폴더나 그 하위 폴더에 배치해야만 한다.


Gizmos

Gizmos를 사용하면 Scene 뷰에 그래픽스를 추가하여 디자인 디테일을 시각화할 수 있다.

예를 들어, Gizmos.DrawIcon()은 Scene에 아이콘을 배치하여 오브젝트나 포지션을 마킹할 때 사용한다.
아이콘을 그리기 위해 사용되는 이미지 파일은 반드시 Gizmos 폴더에 위치해야 한다.

예시

Gizmos 폴더 하위에 Spawn_Base.png라는 아이콘 이미지가 존재한다고 하자.
이 Spawn_Base.png를 사용하여 아군이 생성되는 위치를 시각화해야 한다고 할 때 다음과 같이 할 수 있다.

private void OnDrawGizmos()
{
	// 게임 오브젝트 위치에 Spawn_Base.png를 시각화하되, 이미지 사이즈만큼 표현한다.
	Gizmos.DrawIcon(transform.position, "Spawn_Base.png", true);
}



Plugins

Unity의 기능을 확장하기 위해 프로젝트에 플러그인을 추가할 수 있다.

플러그인은 일반적으로 C/C++로 작성되는 Native DLL이며, 플러그인에서 타사 코드 라이브러리, 시스템 호출, 기타 Unity Built-in 기능에 접근할 수 있다.

플러그인은 항상 Plugins 폴더에 위치해야만 한다.


Resources

Scene에서 게임에 사용할 에셋을 스크립트에서 On demand 방식으로 로드할 수도 있다.

이를 위해서는 에셋은 Resources 폴더나 그 하위 폴더에 위치해야 하며, 하위 폴더에 위치하는 경우 Resources.Load()를 호출할 때 하위 폴더의 경로도 포함해야 한다.

예시

Resources 폴더 하위에 Prefab 폴더를 두고 Cube 프리펩 Prefab 폴더에 위치시켰다고 하자.
그리고 Cube 프리펩을 On demand 방식으로 로드하려고 한다.

var obj = Resources.Load<GameObject>("Prefab/Cube");
Instantiate(obj);



StreamingAssets

에셋을 빌드에 압축하는 방식이 일반적이지만, 원래 포맷의 별도 파일로 사용하고 싶을 경우도 존재한다.

StreamingAssets 폴더에 어떤 파일을 위치시킨다면 타겟 기기의 특정 폴더로 그대로 복사되어 사용할 수 있다.

StreamingAssets 폴더 경로에 접근할 때는 Application.StreamingAssetsPath를 사용하여 StreamingAssets 폴더 경로에 접근할 수 있다.

profile
Game Client Programmer

0개의 댓글