AssetBundle.LoadFromFileAsync自动从云端下载AB,需要使用Unity 2019.4.29f1c109

This commit is contained in:
Liang Zhao 2022-01-19 11:40:37 +08:00
parent 6f5af33f07
commit 89cc5691cf
3 changed files with 29 additions and 31 deletions

2
.gitignore vendored
View File

@ -94,3 +94,5 @@ Assets/Plugins/SDKBridge*
Build/BuildDependenceResource/CurPackEnv.ini Build/BuildDependenceResource/CurPackEnv.ini
Assets/Plugins/VuplexWebViewChromium/log* Assets/Plugins/VuplexWebViewChromium/log*
assetbundleBak* assetbundleBak*
CustomCloudAssets*
_win64*

View File

@ -344,7 +344,9 @@ namespace Pack
[InitializeOnLoadMethod] [InitializeOnLoadMethod]
private static void RegisterBuildPlayerHandler() private static void RegisterBuildPlayerHandler()
{ {
BuildPlayerWindow.RegisterBuildPlayerHandler(BuildPlayerHandler); // TODO: UNITY
// allow Build button in Build Settings window
// BuildPlayerWindow.RegisterBuildPlayerHandler(BuildPlayerHandler);
EditorApplication.quitting += OnQuitting; EditorApplication.quitting += OnQuitting;
} }

View File

@ -490,10 +490,12 @@ public class AssetsMgr : SingletonMono<AssetsMgr>
string assetbundleName = AssetsObscureUtil.GetABFileName("assetbundle"); string assetbundleName = AssetsObscureUtil.GetABFileName("assetbundle");
ulong offset = AssetsObscureUtil.GetABOffset(assetbundleName); ulong offset = AssetsObscureUtil.GetABOffset(assetbundleName);
path = string.Format("{0}{1}", FileSystem.LocalDocumentPath, assetbundleName); path = string.Format("{0}{1}", FileSystem.LocalDocumentPath, assetbundleName);
#if !UNITY_INSTANTGAME
if (!FileSystem.Exists(path)) if (!FileSystem.Exists(path))
{ {
path = string.Format("{0}{1}", FileSystem.LocalPackagePath, assetbundleName); path = string.Format("{0}{1}", FileSystem.LocalPackagePath, assetbundleName);
} }
#endif
var assetBundleCreateRequest = AssetBundle.LoadFromFileAsync(path, 0, offset); var assetBundleCreateRequest = AssetBundle.LoadFromFileAsync(path, 0, offset);
yield return assetBundleCreateRequest; yield return assetBundleCreateRequest;
var assetBundleRequest = assetBundleCreateRequest.assetBundle.LoadAssetAsync("AssetBundleManifest"); var assetBundleRequest = assetBundleCreateRequest.assetBundle.LoadAssetAsync("AssetBundleManifest");
@ -523,10 +525,12 @@ public class AssetsMgr : SingletonMono<AssetsMgr>
mResidentAssetBundleList.Add(shaderName); mResidentAssetBundleList.Add(shaderName);
string path = string.Format("{0}{1}", FileSystem.LocalDocumentPath, shaderName); string path = string.Format("{0}{1}", FileSystem.LocalDocumentPath, shaderName);
#if !UNITY_INSTANTGAME
if (!FileSystem.Exists(path)) if (!FileSystem.Exists(path))
{ {
path = string.Format("{0}{1}", FileSystem.LocalPackagePath, shaderName); path = string.Format("{0}{1}", FileSystem.LocalPackagePath, shaderName);
} }
#endif
AssetBundleCreateRequest shaderABCreateRequest = AssetBundle.LoadFromFileAsync(path, 0, offset); AssetBundleCreateRequest shaderABCreateRequest = AssetBundle.LoadFromFileAsync(path, 0, offset);
yield return shaderABCreateRequest; yield return shaderABCreateRequest;
AssetBundle shaderAB = shaderABCreateRequest.assetBundle; AssetBundle shaderAB = shaderABCreateRequest.assetBundle;
@ -708,15 +712,13 @@ public class AssetsMgr : SingletonMono<AssetsMgr>
string path = string.Format("{0}{1}", FileSystem.LocalDocumentPath, depABName); string path = string.Format("{0}{1}", FileSystem.LocalDocumentPath, depABName);
ulong depOffset = AssetsObscureUtil.GetABOffset(depABName); ulong depOffset = AssetsObscureUtil.GetABOffset(depABName);
if (FileSystem.Exists(path)) #if !UNITY_INSTANTGAME
{ if (!FileSystem.Exists(path))
abRequest = AssetBundle.LoadFromFileAsync(path, 0, depOffset);
}
else
{ {
path = string.Format("{0}{1}", FileSystem.LocalPackagePath, depABName); path = string.Format("{0}{1}", FileSystem.LocalPackagePath, depABName);
abRequest = AssetBundle.LoadFromFileAsync(path, 0, depOffset);
} }
#endif
abRequest = AssetBundle.LoadFromFileAsync(path, 0, depOffset);
syncReqDict.Add(depABName, abRequest); syncReqDict.Add(depABName, abRequest);
mCurLoadingBundleDic.Add(depABName, new LoadTask(depABName)); mCurLoadingBundleDic.Add(depABName, new LoadTask(depABName));
} }
@ -736,15 +738,13 @@ public class AssetsMgr : SingletonMono<AssetsMgr>
//加载场景ab //加载场景ab
string sceneABPath = FileSystem.LocalDocumentPath + sceneABName; string sceneABPath = FileSystem.LocalDocumentPath + sceneABName;
if (FileSystem.Exists(sceneABPath)) #if !UNITY_INSTANTGAME
{ if (!FileSystem.Exists(sceneABPath))
abRequest = AssetBundle.LoadFromFileAsync(sceneABPath, 0, offset);
}
else
{ {
sceneABPath = FileSystem.LocalPackagePath + sceneABName; sceneABPath = FileSystem.LocalPackagePath + sceneABName;
abRequest = AssetBundle.LoadFromFileAsync(sceneABPath, 0, offset);
} }
#endif
abRequest = AssetBundle.LoadFromFileAsync(sceneABPath, 0, offset);
yield return abRequest; yield return abRequest;
Bundle bundle = new Bundle(abRequest.assetBundle, levelName); Bundle bundle = new Bundle(abRequest.assetBundle, levelName);
mBundlesLoaded.Add(levelName, bundle); mBundlesLoaded.Add(levelName, bundle);
@ -797,15 +797,13 @@ public class AssetsMgr : SingletonMono<AssetsMgr>
string path = FileSystem.LocalDocumentPath + depABName; string path = FileSystem.LocalDocumentPath + depABName;
ulong depOffset = AssetsObscureUtil.GetABOffset(depABName); ulong depOffset = AssetsObscureUtil.GetABOffset(depABName);
if (FileSystem.Exists(path)) #if !UNITY_INSTANTGAME
{ if (!FileSystem.Exists(path))
abRequest = AssetBundle.LoadFromFileAsync(path, 0, depOffset);
}
else
{ {
path = FileSystem.LocalPackagePath + depABName; path = FileSystem.LocalPackagePath + depABName;
abRequest = AssetBundle.LoadFromFileAsync(path, 0, depOffset);
} }
#endif
abRequest = AssetBundle.LoadFromFileAsync(path, 0, depOffset);
syncReqDict.Add(depABName, abRequest); syncReqDict.Add(depABName, abRequest);
mCurLoadingBundleDic.Add(depABName, new LoadTask(depABName)); mCurLoadingBundleDic.Add(depABName, new LoadTask(depABName));
} }
@ -825,15 +823,13 @@ public class AssetsMgr : SingletonMono<AssetsMgr>
//加载场景ab //加载场景ab
string sceneABPath = FileSystem.LocalDocumentPath + sceneABName; string sceneABPath = FileSystem.LocalDocumentPath + sceneABName;
if (FileSystem.Exists(sceneABPath)) #if !UNITY_INSTANTGAME
{ if (!FileSystem.Exists(sceneABPath))
abRequest = AssetBundle.LoadFromFileAsync(sceneABPath, 0, offset);
}
else
{ {
sceneABPath = FileSystem.LocalPackagePath + sceneABName; sceneABPath = FileSystem.LocalPackagePath + sceneABName;
abRequest = AssetBundle.LoadFromFileAsync(sceneABPath, 0, offset);
} }
#endif
abRequest = AssetBundle.LoadFromFileAsync(sceneABPath, 0, offset);
yield return abRequest; yield return abRequest;
Bundle bundle = new Bundle(abRequest.assetBundle, levelName); Bundle bundle = new Bundle(abRequest.assetBundle, levelName);
mBundlesLoaded.Add(levelName, bundle); mBundlesLoaded.Add(levelName, bundle);
@ -1628,15 +1624,13 @@ public class AssetsMgr : SingletonMono<AssetsMgr>
{ {
string path = string.Format("{0}{1}", FileSystem.LocalDocumentPath, bundleName); string path = string.Format("{0}{1}", FileSystem.LocalDocumentPath, bundleName);
ulong offset = AssetsObscureUtil.GetABOffset(bundleName); ulong offset = AssetsObscureUtil.GetABOffset(bundleName);
if (FileSystem.Exists(path)) #if !UNITY_INSTANTGAME
{ if (!FileSystem.Exists(path))
abRequest = AssetBundle.LoadFromFileAsync(path, 0, offset);
}
else
{ {
path = string.Format("{0}{1}", FileSystem.LocalPackagePath, bundleName); path = string.Format("{0}{1}", FileSystem.LocalPackagePath, bundleName);
abRequest = AssetBundle.LoadFromFileAsync(path, 0, offset);
} }
#endif
abRequest = AssetBundle.LoadFromFileAsync(path, 0, offset);
} }
catch (Exception e) catch (Exception e)
{ {