부트캠프

유니티 특수 폴더 이름

noyyo 2023. 7. 31. 20:27

게임을 제작하다보면 여러가지 애셋들이 많이 필요하다.

하지만 개발 단계에서 모든 애셋이 이미 만들어져서 모두에게 공유되리라고 기대하기 어렵다.

이럴 때 동적으로 애셋을 로드할 수 있도록 유니티에서 지원하는 폴더 이름이 있다. 바로 Resources.

Resources폴더를 생성하면 스크립트 상에서 Resources 클래스의 Load 메소드를 이용해서 파일명으로 원하는 애셋을 동적으로 로드할 수 있다.

 

GameObject test1 = Resources.Load<GameObject>("Prefabs/testPrefab");
GameObject test2 = Resources.Load("Prefabs/testPrefab") as GameObject;
GameObject test3 = (GameObject)Resources.Load("Prefabs/testPrefab");

사용 방법은 위와 같다.

주의할 사항으로 동적으로 애셋을 로드한다면 반드시 null 체크를 하고 사용하자.

 

유니티에서는 Resources뿐만 아니라 몇몇 특수한 이름을 가진 폴더에 대해서 따로 기능을 제공하고 있다.

Assets 유니티 프로젝트에서 사용하는 애셋이 포함되는 주  폴더
Editor 런타임 스크립트가 아닌, 에디터 스크립트로 간주하여 유니티 에디터에 기능을 추가하며 커스터마이징 
Editor Default Resources 요구가 있을 때 즉시 에셋 파일을 로드
Gizmos 씬 뷰에 그래픽스를 추가하여 원래는 보이지 않는 디자인 디테일을 시각화
Plug-ins 유니티의 기능을 확장하기 위해 포르젝트에 추가하는 네이티브 DLL(타사 코드 라이브러리, 시스템 콜, 기타 유니티 빌트인 기능 등)
Resources 씬에서 게임플레이에 사용할 에셋의 인스턴스를 만드는 대신 스크립트에서 온디맨드 방식으로 에셋을 로드
Standard Assets 스탠다드 애셋 패키지를 임포트하면 에셋 뿐만 아니라 스크립트 컴파일 순서에도 영향을 미침, 특수 폴더와 스크립트 컴파일 순서에 사용
StreamingAssets 파일을 타겟 기기의 특정 폴더로 그대로 복사되어 사용하기 위함
Hidden Assets 임포트 과정에서 유니티 Assets 폴더의 특정 파일 및 폴더를 완전히 무시

https://docs.unity3d.com/kr/2018.4/Manual/SpecialFolders.html

 

특수 폴더 이름 - Unity 매뉴얼

보통 Unity 프로젝트를 구성하기 위해 폴더를 생성할 때 원하는 이름은 무엇이든 선택할 수 있습니다. 그러나 몇 가지 폴더 이름의 경우 Unity는 해당 폴더의 내용이 특별한 방식으로 취급되어야

docs.unity3d.com