강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

조현상 (잉어갓)님의 프로필 이미지
조현상 (잉어갓)

작성한 질문수

[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작

Addressable

Addressables로 등록한 Slice된 Sprite의 하위 Sprite 접근법에 대해 질문드립니다

작성

·

25

·

수정됨

0

현재 Effect animation을 만드는 중, animator의 사용 대신 SpriteRenderer의 sprite만 교체하는 방식으로 최적화를 시도하고 있습니다.

여기서 문제된 점이 class에 sprite[]를 선언 후 해당 class를 부착한 GameObject에 inspector에서 미리 slice된 sprite의 내용물들을 할당해줄 경우, Sprite(2D and UI)타입은 메인 스레드 외에서 할당되면 안된다는 에러가 나서 런타임 내에 할당하는 방식을 시도중입니다.

Addressables를 이용하여 slice된 Sprite를 로딩할 경우, Sprite의 slice된 첫번째 sprite만 Load가능하고 나머지는 호출이 불가능합니다. 이를 해결하기 위해 LoadAssetAsync대신 LoadAssetsAsync를 이용한 LoadAsync 생성 등 여러가지로 시도해보았으나 전부 실패하여 결국 Sprite를 Unity 내에서 slice하는 대신 각자 개별 Sprite로 만들어서 import해야 한다는 방식에 이르렀습니다.

다만, 이 방식은 최적화를 위해 굳이 animator를 사용하지 않으려고 한 의미가 없어진다고 판단되어 Addressables에서 Slice된 Sprite의 사용 방법에 대한 의견 여쭤보고 싶습니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 조현상님.

현재 Addressables로 슬라이스된 스프라이트 시트를 어떻게 로드하고 사용하는지에 대한 문제를 겪고 계신 것 같습니다. 먼저 설명드리자면, 슬라이스된 스프라이트 시트의 경우, 각각의 스프라이트 조각을 개별적으로 접근하기 위해서는 몇 가지 유의해야 할 점이 있습니다.

문제 요약

  1. 스프라이트 로딩 문제: Addressables로 슬라이스된 스프라이트 시트를 로드할 때 첫 번째 스프라이트만 로딩되는 문제.
  2. 런타임 할당 문제: 런타임 시 스프라이트를 할당하려고 할 때 발생하는 문제.

해결 방법

  1. 슬라이스된 스프라이트 개별 접근:

    • Addressables를 사용할 때, 슬라이스된 스프라이트의 개별 조각을 로드하려면 LoadAssetAsync 대신 전체 리스트를 로드할 수 있는 LoadAssetsAsync를 사용하는 것이 일반적입니다.
    • 슬라이스된 스프라이트들은 보통 Addressable Group에 의해 묶여 있으며, LoadAssetsAsync를 통해 해당 그룹 전체를 로드한 후 특정 인덱스를 사용해 접근할 수 있습니다.
  2. 실제 실행 환경에서 로딩 최적화:

    • 첫 번째로 슬라이스된 스프라이트를 개별 주소로 불러와야 하는 것보다는 처음부터 각각의 스프라이트 조각을 개별 파일로 저장해 Addressables 시스템에 등록하는 것이 좋습니다. 이는 초기 로딩 시간과 런타임 중 스프라이트 접근성을 높이는 데 도움이 될 수 있습니다.
    • 추가적으로 에셋 번들링을 사용하여 스프라이트를 한 번에 패치하여 메모리를 절약하고 접근성을 높입니다.

이전과 비슷한 질문이 있는 경우 해당 질문을 참고하시는 것도 좋습니다, 이전에 비슷한 질문을 통해 확인해 보시기 바랍니다.

참고 링크

  • 유니티 Addressables 문서: Addressables의 기본 개념과 사용법을 확인할 수 있습니다.
  • 유니티 포럼 혹은 커뮤니티에서도 유사한 문제를 해결한 경험담을 구할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

조현상 (잉어갓)님의 프로필 이미지
조현상 (잉어갓)

작성한 질문수

질문하기