Addresablesでコンテンツをサーバからダウンロードする方法
環境
OS macOS 10.15.7
Unity 2019.4.2f1
Addressable 1.16.15
PackageManagerからAdressablesをインストール
WindowメニューからAsset Management->Addressables->Groupsを選択
Create Addressables Settingsをクリック
オブジェクトを配置する。オブジェクトは一度ProjectにドラッグしPrefabにする。この例では「Object」と名前をつけた。
PrefabにしたオブジェクトはHierarchyから削除する。
PrefabはAddressableにチェックを入れる。
カラのGameObjectを生成し、その中に下記のスクリプトを記述する。ここではファイル名を「LoadScript」とした。
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を選択する。
上記のUIがInspectorに表示されない場合は、Project WindowでRefleshする。
AdressableAssetSettingのInspectorでCatalogの設定をおこなう。
Assets>AddresableAssetsDataの中にあるAdressableAssetSettingをクリックしてInspectorを表示する。
「Build Remote Catalog」にチェックを入れる。
「Build Remote Caralog」はRemoteBuildPathを選択。
「LoadPath」はRemoteLodePathを選択。
ここではlocalhostのStandaloneOSXフォルダを参照するようになっている。
LoadPathのURLを変更する際にはWindow>Addressable Management>Addresbles>Profilesを開きRemoteLoadPathのURLを変更する。
リモートサーバにアップするファイルのビルドを行う。
Play Mode ScriptのUse Existing Buildを選択
Build>New Build> Default Build Scriptを選択肢ビルドする。
プロジェクトのフォルダ内にSarverDataフォルダが出来ているはず。
その中にBuildTarget名のフォルダをアプリが参照するディレクトリにコピーする。
macOSの場合httpServerが/Library/WebServer/Documentsを参照するので下記の様になる
最後にアプリをBuild and Runを実行する。