Unity:Addressable でコンテンツをダウンロード

Addresablesでコンテンツをサーバからダウンロードする方法

環境
---
OS macOS 10.15.7
Unity 2019.4.2f1
Addressable  1.16.15

---
PackageManagerからAdressablesをインストール

![スクリーンショット 2021-01-21 13.52.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658283/a98fc038-dd79-70f6-49e5-51724e9deb42.png)


WindowメニューからAsset Management->Addressables->Groupsを選択
![スクリーンショット 2021-01-21 13.54.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658283/eb3e2a00-ed2f-b08f-30dc-2db302534b96.png)

Create Addressables Settingsをクリック
![スクリーンショット 2021-01-21 13.54.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658283/bbd18f6d-0f4f-e2dc-8dcc-adf3f6093478.png)


オブジェクトを配置する。オブジェクトは一度ProjectにドラッグしPrefabにする。この例では「Object」と名前をつけた。
PrefabにしたオブジェクトはHierarchyから削除する。
PrefabはAddressableにチェックを入れる。
![スクリーンショット 2021-01-21 13.59.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658283/18d7a378-66cc-23ea-6248-3605146547db.png)


カラのGameObjectを生成し、その中に下記のスクリプトを記述する。ここではファイル名を「LoadScript」とした。


``` C#
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using UnityEngine.AddressableAssets; 
using UnityEngine.ResourceManagement.AsyncOperations;

public class LoadScript : MonoBehaviour

{
    public AssetReference reference;

    // Start is called before the first frame update
    void Start()
    {
        reference.InstantiateAsync();
    }

}
```

上記のスクリプトのInspecterには下図のようなUIが表示されるので、リモートからロードするPrefabを選択する。
![スクリーンショット 2021-01-21 14.04.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658283/50e1d0dc-63c3-c8e1-185c-de6389874994.png)
上記のUIがInspectorに表示されない場合は、Project WindowでRefleshする。
![スクリーンショット 2021-01-21 14.04.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658283/8f700c67-c5eb-caa7-2a6e-859dd65de273.png)

AdressableAssetSettingのInspectorでCatalogの設定をおこなう。
Assets＞AddresableAssetsDataの中にあるAdressableAssetSettingをクリックしてInspectorを表示する。
![スクリーンショット 2021-01-21 14.27.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658283/a2002fa8-6a77-57a2-03f3-caff8ab13a27.png)

「Build Remote Catalog」にチェックを入れる。
「Build Remote Caralog」はRemoteBuildPathを選択。
「LoadPath」はRemoteLodePathを選択。
ここではlocalhostのStandaloneOSXフォルダを参照するようになっている。
![スクリーンショット 2021-01-21 14.27.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658283/f0d32f2e-40db-41b5-7aab-3828640150ae.png)

LoadPathのURLを変更する際にはWindow>Addressable Management>Addresbles>Profilesを開きRemoteLoadPathのURLを変更する。
![スクリーンショット 2021-01-22 22.20.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658283/7bf7be15-793b-3e52-fe9c-0360eca377cc.png)
![スクリーンショット 2021-01-22 22.16.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658283/f4dfc86c-ccd6-49dd-8230-a5dce791c2c3.png)


リモートサーバにアップするファイルのビルドを行う。
Play Mode ScriptのUse Existing Buildを選択
![スクリーンショット 2021-01-21 14.07.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658283/c20d1250-b96d-33a0-c5a0-8dc10f66a8b5.png)
 Build>New Build> Default Build Scriptを選択肢ビルドする。
![スクリーンショット 2021-01-22 22.24.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658283/f7e97ecf-2b80-23e9-13c2-03823086aacc.png)

プロジェクトのフォルダ内にSarverDataフォルダが出来ているはず。
その中にBuildTarget名のフォルダをアプリが参照するディレクトリにコピーする。
![スクリーンショット 2021-01-22 22.28.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658283/c5ecf278-e570-d0be-f314-911bb338df12.png)
macOSの場合httpServerが/Library/WebServer/Documentsを参照するので下記の様になる
![スクリーンショット 2021-01-22 22.35.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658283/79c003e9-7ee3-63f1-92c0-9359779121ee.png)

最後にアプリをBuild and Runを実行する。