자산 패키지를 관리하는 메커니즘의 세 가지를 재발명하다

5264 단어 Unity
학습 자산 패키지 캐시
리소스 바인딩 캐시 이해
여기 참고
지금은 UnityWebRequestAssetBundle입니다.CachedAssetBundle를 GetAssetBundle에 전달하는 모드를 사용하는 것이 좋습니다.
따라서 원격으로 다운로드할 때 이곳을 사용하세요.
그리고 캐치드 Asset Bundle을 사용하는 방식으로 캐시를 만들어 보세요.
아래 이미지처럼 관리되는 소재의 자산 패키지를 만들어 봤다.
참고로 소재는 헐렁한 도라에몽 RPG 갤러리 소재에서 빌려온 거예요.
http://yurudora.com/tkool/

자원 차원

예전에 AssetBundleGraph Tool을 업무 중에 사용했기 때문에 이번에도 복습을 겸하고 있습니다.
AssetBundleGraphTool을 사용하여 환경을 구축하는 중입니다.
그래프는 이런 느낌이에요.

AssetBundleGraphTool의 이미지/Character/폴더 이름
에서 기술한 장면은 다음과 같은 절차를 이용하여 명세표를 작성하여 개념 디자인에서 체량의 부피를 분석하도록 한다.
생성된 자원 패키지는 이런 느낌입니다.

UnityWebRequestAssetBundle을 시도하십시오.GetAssetBundle에서 CachedAssetBundle로 StreamingAssets에서 다운로드한 후 Caching.currentCacheForWriting.찾기에서 path를 열려고 시도했습니다.

확실히
{CACHE_DIR}/{cachedAssetBundle.name}/{cachedAssetBundle.hash.ToString()}
에서 설명한 대로 해당 매개변수의 값을 수정합니다.
자산 패키지의 실제 상황은 __데이터인 것 같아서 이것을 지정하면 LoadFromFile을 사용할 수 있습니다.
다음 경로를 생성하고 접근해 보십시오.
결과적으로 자원 패키지를 불러올 수 있습니다.
        string assetDir
        {
            get
            {
                var name = cachedAssetBundle.name;
                return $"{Caching.currentCacheForWriting.path}/{name}";
            }
        }
        string dataPath
        {
            get
            {
                var hash = cachedAssetBundle.hash.ToString();
                return $"{assetDir}/{hash}/__data";
            }
        }
불러오는 위치 호출
                var op = UnityEngine.AssetBundle.LoadFromFileAsync(dataPath);
                op.completed += (obj) =>
                {
                    assetBundle = op.assetBundle;
                };
지금 제 생각은요.
· 캐시의 위치를 확인하고 파일이 존재하는 경우 LoadFromFileAsync에서 호출합니다.
・존재하지 않으면 Unity WebRequest Asset Bundle.자산 획득 Bundle
이런 구조.
이 구조에서 활용할 수 있다면 Unity WebRequest Asset Bundle을 사용하는 경우 Caching입니다.ready 사실이 아니면 안 되는 제약이 해결될까...?이렇게 생각하다
자산 가방 서류 같은 걸 혼자 만들 필요가 있을 것 같아요.
Json Utility나 MessagePack으로 서열화하면 속도가 빨라집니다.
현금 주위 참고 보도
[Unity2018.2] Caching.ready 왜 이렇게 느려? &기준을 얻어보았다

좋은 웹페이지 즐겨찾기