자산 패키지를 관리하는 메커니즘의 세 가지를 재발명하다
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 왜 이렇게 느려? &기준을 얻어보았다
Reference
이 문제에 관하여(자산 패키지를 관리하는 메커니즘의 세 가지를 재발명하다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kawawa1989/items/cf588f1e49134a3742b2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)