티스토리 뷰

유니티에서 외부 파일을 할당하는 가장 기초적인 방법은 하나는 '인스펙터에서 직접 넣어주는 것'이다.

사실상 인스턴스에 직접 배정해 주는 셈이라서 이렇게 구성하면 별다른 복잡한 과정 없이 외부 파일을 할당할 수 있지만, 동적 생성되는 오브젝트나 오브젝트 풀 같은 곳에서 활용하기에는 메모리 최적화 상으로도 그렇고 이래저래 난감한 편이라는 문제가 있다.

물론, 스크립터블 오브젝트를 활용해서 구성한다던가 하는 것도 가능은 하긴 한데, 어찌되었건 인스펙터를 건드려야 한다 [= 유니티를 만져야 한다.]는 점에서 기획자가 능동적으로 사용하기는 난감하다.

 

그렇다 보니, Resources.Load와 Adressable Asset 등의 방법으로 스크립트를 통해서 불러오게끔 구성하고, 이를 Json 등의 문서화 파일과 연동시킴으로써 기획자가 엑셀 만 작업하면 되도록 구성하는 경우가 많다.

그럼, 오늘은 이 방법 중에서 ResourceLoad에 대해서 정리 해 보자.

오늘은 코드 한 줄으로 끝나기 때문에 간단하게 끝날 것이다.


Resources.Load()

스크립트를 통해서 파일을 불러오는 경우에 사용할 수 있는 가장 기초적인 형태의 함수.

기본적으로 프로젝트의 Assets 폴더에 Resources 폴더가 존재하며, 목표하는 파일이 Resources 폴더 안에 있다는 전제가 필요하다.

[만약 그렇지 않다면, 폴더를 새로 만들거나, 파일의 위치를 옮겨서 맞춰 놓자.]

 

사용 방법은 간단하다.

T val = Resources.Load<T>(path);

이렇게 사용하면 val 변수 안에 path에 해당하는 디렉토리의 파일이 할당된다.

path는 Resources 폴더를 루트 폴더로 삼아서 작성되는 상대 주소로 작성하면 되고, T에는 해당 파일의 변수형을 선택하면 된다. 이미지 파일이면 Sprite, 프리팹이면 GameObject 같은 방식.


참고로, '외부 데이터 로드'도 시스템 부하가 꽤나 큰 편이다.

다만, 이걸 변수로 할당 해 놓는 것도 메모리도 잡아먹고 있는 셈이라서 적당히 절충해서 사용하는 것이 좋다.

또한, Resources.Load는 빌드 시에 포함되는 내용이다 보니 빌드 시간이 길어지고 시작 시간에도 영향이 다소 있는 등, 난점이 없는 것은 아니다.

반대로 사용자의 컴퓨터에 에셋 리소스가 존재하는 방식이기 때문에 오프라인 환경에서 쓰기는 좋은 편.

 

여담으로, 또다른 AssetBundle에 대해서는 더 정리를 해야 해서 바로 작성하지는 않을 예정이다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함