【Unity】Addressablesでリモートからデータ取得手順
以下のコードをサーバーから取得する形に変更します。
[RequireComponent(typeof(Image))]
public class AddressableTest : MonoBehaviour
{
private Image img;
void Start()
{
img = this.gameObject.GetComponent<Image>();
LoadAsset("zunmon026");
}
private async void LoadAsset(string key)
{
AsyncOperationHandle<Sprite> asyncOH = Addressables.LoadAssetAsync<Sprite>(key);
await asyncOH.Task;
img.sprite = asyncOH.Result;
Addressables.Release(asyncOH);
}
}
とはいっても変えるところはAddressables.Releaseを別にしただけ
(Addressables.LoadAssetAsyncしたものはリリースすると消えたので…)
C#コード上はこちらでいけます。キャッシュ処理は適当
[RequireComponent(typeof(Image))]
public class AddressableTest : MonoBehaviour
{
private Image img;
void Start()
{
img = this.gameObject.GetComponent<Image>();
LoadAsset("zunmon026");
}
private List<AsyncOperationHandle<Sprite>> cacheList = new List<AsyncOperationHandle<Sprite>>();
private async void LoadAsset(string key)
{
AsyncOperationHandle<Sprite> asyncOH = Addressables.LoadAssetAsync<Sprite>(key);
await asyncOH.Task;
img.sprite = asyncOH.Result;
cacheList.Add(asyncOH);
}
public void ReleaseAsset()
{
foreach(var cache in cacheList)
{
Addressables.Release(cache);
}
}
}
ビルド&ロード先変更
Addressables Profilesを開き"Remote.LoadPathを変更する"
例ではGoogleCloudだが取得できればなんでもいい
Addressables Groupsウィンドウを開き、画像ファイルをリモートから取得するようにする
(Default Local Groupは変えたくないので)NewからRemoteGroupを新しく作成し、Addressablesした画像をRemoteGroupにD&Dする
、RemoteGroupを選択する
Content Packing & LoadingのBuild & Load PathsをRemoteに変更
(このグループはビルドとロード先が違いますよという設定)
指定できたらPlyaer Mode Script > UseExistingBuildを選択
Build>NewBuild>DefaultBuildScriptを選択する、ビルドされる
ビルド先のファイルをリモートにアップロードする
(GoogleCloudだったらバケットのルート)
Unityで実行するとロード成功する
ディスカッション
コメント一覧
まだ、コメントがありません