[Unity] iOS 실제 시스템에서 Tilemap이 포함된 Scene을 AsseetBundle에서 읽은 후 충돌

2977 단어 Unity

⚙운영 환경

  • Unity2017.3.1f1
  • 📝현상.

  • Scene을 AsseetBundle에 저장하고 실행할 때 읽는 활용
  • iOS가 실제 시스템에서 특정 장면을 읽을 때 충돌
  • 🤔가설


    다음부터 Asseet Bundle를 통해 Tilemap이 포함된 Scene을 읽을 때 붕괴될 것이라고 가정하고 조사를 진행합니다
  • Tilemap이 포함되지 않은 일반 장면에서 붕괴
  • AssetBundle에서 읽지 않으며 Scene을 포함하여 구축 검증을 진행하면 충돌이 발생하지 않습니다
  • 💡까닭


    응용 프로그램에서 Tilemap을 사용하지 않고 Strip Engine Code 유효할 때, 구축할 때 Tilemap과 관련된 실행 코드를 삭제합니다.따라서 AcceetBundle에서 Tilemap이 포함된 Scene을 동적으로 가져올 때 실행할 수 없습니다.
    반면 애플리케이션에서 Tilemap을 사용하는 경우에는 문제가 발생하지 않습니다.

    🗑Strip Engine Code 정보

    Strip Engine Code는 모바일 최적화를 위한 옵션 중 하나이며, Unity 엔진에서 사용되지 않은 코드를 제거하여 구축 용량을 줄일 수 있습니다.Strip Engine Code는 다음과 같은 조건에서 적응할 수 있다.
  • IL2 CPP 사용
  • PlayerSettings => Other SettingsStrip Engine Code 유효

  • 🛠취소


    Strip Engine Code 비활성화


    Strip Engine Code 구축을 비활성화하여 충돌이 발생하지 않도록 확인합니다.이 상태라면 용량이 늘어나기 때문에 다른 처리 방법을 취한다.

    link.xml에 사용된 코드 기록하기 (추천)


    Unity - Manual: Managed bytecode stripping with IL2CPP
    위에서 설명한 파일 link.xml 을 만들고 Assets 폴더의 바로 아래에 놓으면 줄무늬가 없는 코드 목록을 정의할 수 있습니다.
    이번 정의UnityEngine.Tilemaps.Tilemap/UnityEngine.Tilemaps.TilemapRenderer.
    link.xml
    <linker>
        <assembly fullname="UnityEngine">
            <type fullname="UnityEngine.Tilemaps.Tilemap" preserve="all"/>
            <type fullname="UnityEngine.Tilemaps.TilemapRenderer" preserve="all"/>
        </assembly>
    </linker>
    

    위 구성link.xml 상태에서 사용Strip Engine Code 및 구축 및 검증하여 충돌 없음 확인✨

    📗참고 자료

  • [Unity] Unity 5.3에서 Asseet Bundle로의 변화... 요약. - 초현실주의 블로그.
  • [Unity] Stripping Level-F 밑줄
  • 좋은 웹페이지 즐겨찾기