DbIMok писал(а):там вся инструкция
на одной странице. непонятно, почему вы прочитали как разбить пакет на части, но не прочитали как потом загрузить эти файлы (в зависимости от выбранного способа доставки)
например
Загрузить активы в память
После завершения запроса используйте одну из этих функций для загрузки ресурсов в память:
Используйте PlayAssetPackRequest.GetAssetLocation() , чтобы получить AssetLocation объект. Это обеспечивает путь, смещение и размер актива, чтобы его можно было загрузить с диска.
Если актив представляет собой AssetBundle, вы можете использовать удобный метод PlayAssetPackRequest.LoadAssetBundleAsync(assetPath). Путь ресурса, который вы передаете, должен соответствовать пути к AssetBundle из пакета ресурсов. Это вернет AssetBundleCreateRequest .
Здравствуйте, ну ни как не получается. DbIMok, подскажите.
Изначально всё делал по другой справке. (
https://docs.unity3d.com/Manual/AssetBundles-Workflow.html). То, что видовос и андройд в этом смысле(файловой системы) различаются узнал недавно.
Делаю со страницы, что вы оставили, но тоже не получается.
public void goScene()
{
PlayAssetBundleRequest bundleRequest = PlayAssetDelivery.RetrieveAssetBundleAsync("sceneassetbundle"); // sceneassetbundle имя bundle
AssetBundle assetBundle = bundleRequest.AssetBundle;
string[] scenePaths = assetBundle.GetAllScenePaths();
SceneManager.LoadScene(scenePaths[0]);
}
В sceneassetbundle две сцены. Пробовал scenePaths[0] и scenePaths[1]
Bundle хранятся в папке "Assets/AssetBundles". Эта папка добавлена в "Google --> Android App Bundle --> Asset Delivery Settings". Способ доставки стоит Install Time.
Уже руки опускаются, помгите пожалуйста. Где ошибка. Как загрузить сцену на андройд.
-----------------------------------------------------------------------------------------------------------------
Ещё пробовал вот так:
IEnumerator InstantiateObject()
{
string url = "file:///" + Application.dataPath + "/AssetBundles/" + "sceneassetbundle"; // sceneassetbundle имя bundle
var request
= UnityEngine.Networking.UnityWebRequestAssetBundle.GetAssetBundle(url, 0);
yield return request.Send();
AssetBundle bundle = UnityEngine.Networking.DownloadHandlerAssetBundle.GetContent(request);
SceneManager.LoadScene("old"); // old имя сцены
}
public void goScene()
{
StartCoroutine(InstantiateObject());
}