| Parameter | Description |
|---|---|
| assetPackNames | The array of names of the Android asset packs to query the state of. |
GetAssetPackStateAsyncOperation Returns an object that represents the query operation. If you yield this object inside a coroutine, the coroutine pauses until the operation is complete.
Queries the state of Android asset packs.
This method directly wraps Google's PlayCore plugin API. If the PlayCore plugin is missing, calling this method throws an InvalidOperationException exception. Additional resources: GetAssetPackStateAsyncOperation, AndroidAssetPacks.DownloadAssetPackAsync, AndroidAssetPacks.GetAssetPackPath.
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Android;
public class GetAssetPackStateAsyncExample : MonoBehaviour { IEnumerator Start() { var assetPackNames = new string[] { "MyAssetPack", "AnotherAssetPack" }; var stateOperation = AndroidAssetPacks.GetAssetPackStateAsync(assetPackNames);
// Yield until the query completes. yield return stateOperation;
Debug.Log($"Total size of queried packs: {stateOperation.size} bytes");
if (stateOperation.states == null) { Debug.LogError("Failed to retrieve asset pack states."); yield break; }
var packsToDownload = new List<string>(); foreach (var state in stateOperation.states) { if (state.status == AndroidAssetPackStatus.NotInstalled) { packsToDownload.Add(state.name); } else if (state.status == AndroidAssetPackStatus.Completed) { Debug.Log($"{state.name} is already downloaded."); } else if (state.error != AndroidAssetPackError.NoError) { Debug.LogError($"{state.name} has error: {state.error}"); } }
if (packsToDownload.Count > 0) { Debug.Log($"Downloading {packsToDownload.Count} asset pack(s): {string.Join(", ", packsToDownload)}"); yield return AndroidAssetPacks.DownloadAssetPackAsync(packsToDownload.ToArray()); } } }
| Parameter | Description |
|---|---|
| assetPackNames | The array of names of the Android asset packs to query the state of. |
| callback | The callback method to get the result. Unity raises this callback once when the query is complete and the callback receives the state of queried Android asset packs. The callback method must have two parameters:
|
Queries the state of Android asset packs.
This method directly wraps Google's PlayCore plugin API. If the PlayCore plugin is missing, calling this method throws an InvalidOperationException exception. Additional resources: AndroidAssetPackState, AndroidAssetPacks.DownloadAssetPackAsync, AndroidAssetPacks.GetAssetPackPath.
using UnityEngine; using UnityEngine.Android;
public class GetAssetPackStateAsyncCallbackExample : MonoBehaviour { void Start() { var assetPackNames = new string[] { "MyAssetPack" }; AndroidAssetPacks.GetAssetPackStateAsync(assetPackNames, OnStateQueryComplete); }
void OnStateQueryComplete(ulong totalSize, AndroidAssetPackState[] states) { Debug.Log($"Total size: {totalSize} bytes");
if (states == null) { Debug.LogError("Failed to retrieve asset pack states."); return; }
foreach (var state in states) { Debug.Log($"{state.name}: status={state.status}, error={state.error}"); } } }