오랜만에 글을 작성한다.

 

사내 스터디 프로젝트에는 어드레서블을 사용한다. 그렇기 때문에 어드레서블에 학습이 필요했다.! 알아야 쓰지

 

리소스 폴더 사용

장점은 사용하기에 편리하다가 있다. 하지만, 리소스폴더에 메모리는 최대한 줄이도록 한다. 시작 시 최소한의 에셋만 남겨두어야겠지만? 리소스 폴더를 경계해야 한다.

단점으로는

1. apk사이즈가 커진다.

2. 앱 시작 시간이 길어진다.

3. 앱이나 폴더 변경 시 재 빌드를 해야 한다. (apk빌드에 묶이기 때문에 에셋 변경 시 무조건 재 빌드해야 한다.)

4. 에셋 이름 변경이 힘들다. (에셋을 로드할 때 경로를 바꿔줘야 하기 때문)

 

이런 문제점들을 보완할 수 있는 에셋 번들이 있다.

에셋 번들

장점은 에셋을 묶음 단위로 관리할 수 있다. 빌드 사이즈 절감과, 앱 시작 시간을 단축시킨다. 있지만

단점으로는

1. 번들의 종속성 문제.

같은 이미지를 Asset A와 Asset B에 묶여있다면 같은 이미지 1개로 처리될 것 같지만 2개의 이미지로 인식된다.

 

이러한 에셋 번들(빌드와 번들의 분리)의 장점과 리소스 폴더의 장점(비교적 편리함)을 가진 어드레 서블 에셋 시스템입니다. 


어드레 서블 에셋

어드레서블 에셋이란 어드레스가 할당된 에셋이다. 어드레스를 이용하여 에셋 위치에 상관없이 참조가 가능하다.

어드레서블 에셋 시스템

어드레스를 이용하여 에셋의 관리, 로딩, 빌드가 통합된 시스템이다.

 

어드레 서블 에셋 시스템. 특징만 봐도 편리해 보인다. 장점을 자세하게 보면

1. 에셋 빌드와 배포의 단순화 : 직접 레퍼런스, 리소스 폴더, 에셋 번들 분리가 단순화되고 편리해진다.

2. 효율적인 에셋 관리 : 종속성 파악 및 메모리 로드/언로드 현황을 볼 수 있다. (중복된 에셋으로 메모리를 낭비가 되는 것을 막는다.)


 

이제 어드레 서블 기능에 대해서 알아보자!

 

1. 해당 프리 팹에 어드레스 부여 하기.

어드레 서블 체크박스에 체크하고 어드레스를 부여하면된다. 그리고 잘 되어있는지 어드레서블 현황 대시보드를 통해 확인한다.

2. 에셋 로드하기.

1) Lables 으로 로드하기.

		Addressables.LoadAssetsAsync(type.ToString(), (Object obj) =>
		{
			if (!m_dicObject.ContainsKey(type))
				m_dicObject.Add(type, new Dictionary<string, Object>());

			m_dicObject[type].Add(obj.name, obj);

		});

위 코드에 type이 어드레서블에 Lables이다. 

 

2) 레퍼런스로 로드하기.

이런 식으로 인스펙터에 레퍼런스를 지정하여 로드하는 방식이다.

 

3) 어드레 서블 이름으로 로드하기.

    public void LoadAsset(string strAddressableName)
    {
       Addressables.InstantiateAsync(strAddressableName);
    }

2),3) 번은 현재 프로젝트에서는 사용하지 않는 방법이지만 어떤 식으로 로드하는지 찾아봤다. 

반응형

+ Recent posts