• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

어드레서블을 사용해서 받은 에셋이 전부 핑크색으로 나와요

24.02.21 17:35 작성 조회수 203

0

안드로이드로 스위치 했구요. 모델링하나를 씬에 올리고 재질을 하나 만들어서 재질은 mobile/unlit(support lightmap)이라는걸로 넣었구요. 그상태로 그걸 프리펩으로 만들고 어드레서블을 지정했습니다. 기본 디폴트 그룹에 지정되어있구요. 들어가있는 재질도 어드레서블을 지정해서 넣었습니다. 그리고나서 어드레서블을 사용해서 다운을 받고 불러오기까지 했습니다. 여기서 문제가 하나 생기더라구요.. 불러오니까 핑크색으로 나오는거에요.. 그래서 리얼타임에서 불러온상태에서 재질쪽으로 가니까 재질은 들어가있는데 쉐이더쪽이 핑크색인거에요.. 그래서 쉐이더를 다시 unlit으로 지정을 해주니까 잘나오더라구요.. 그렇다는건 쉐이더도 어드레서블에 포함을 해야한다는 이야기인건가요?

진짜 이것저것 시도를 다해보고있는데 해결이 안되네요..

빌트인에 unlit쉐이더를 포함하면 된다고 하는 말도있어서 그것도 해봤는데 그것마저도 안되더라구요..ㅜㅜ

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.02.22

안녕하세요, 인프런 AI 인턴입니다.
술홍님, 유니티의 Addressable 시스템을 사용하실 때 에셋이 핑크색으로 나타나는 문제는 주로 쉐이더가 제대로 로드되지 않았을 때 발생합니다. 사용하는 쉐이더가 빌드에 포함되어 있지 않거나, Addressable로 지정된 재질에 연결된 쉐이더가 런타임에서 찾을 수 없을 때 일어날 수 있습니다.

에셋 번들이나 Addressable 에셋을 사용할 때는, 해당 에셋이 참조하는 모든 종속성(재질, 텍스처, 쉐이더 등)이 포함되도록 해야 합니다. 따라서, 문제가 되는 쉐이더를 에셋 번들이나 Addressable Asset Group에 명시적으로 포함시키셔야 합니다.

빌트인 쉐이더를 사용할 경우, 프로젝트 세팅에서 ‘Graphics’ 설정에 가셔서 ‘Always Included Shaders’ 목록에 해당 쉐이더를 추가하여 빌드 시 항상 포함되도록 설정하실 수 있습니다. 만약 커스텀 쉐이더를 사용하신다면, 해당 쉐이더를 Addressable Asset Group에 포함시켜야 합니다.

또한, 재질이나 쉐이더가 Addressable로 지정되었을 때 해당 자원들의 주소가 올바르게 설정되어 있는지, 에셋을 로드하는 과정에서 참조를 재설정하는 코드가 필요하지 않은지 확인해보시길 바랍니다. Addressable을 통해 로드하는 과정에서 명시적으로 쉐이더를 찾아 연결해주는 과정이 필요할 수도 있습니다.

에셋의 쉐이더가 핑크색으로 나타나는 문제를 해결하기 위해 다음의 사항들을 점검해보세요:
- 유니티 에디터에서 쉐이더가 정상적으로 작동하는지 확인합니다.
- 빌드 설정에서 해당 쉐이더가 항상 포함되도록 설정되어 있는지 확인합니다. (Project Settings > Graphics > Always Included Shaders)
- Addressable 그룹 설정에서 해당 쉐이더를 포함시켰는지 확인합니다.
- 런타임 상에서 쉐이더를 다시 연결하는 코드가 필요한지 확인합니다.

이 과정을 통해 문제가 해결되지 않으면, 포럼이나 커뮤니티에 구체적인 설정과 문제를 설명하여 도움을 요청하는 것도 하나의 방법입니다.

술홍님의 프로필

술홍

질문자

2024.02.25

해결했습니다~! play mode script를 simulate group으로 하니까 에디터에서도 잘나오더라구요~!