Unity/Addressable
Addressableとは
外部サーバーで使えるResources
インストール
- Unityメインメニュー/Window/Package Manager/Unity Registryが選択"addressable"を検索
- Addressablesをinstall
Addressableの作り方
- 例として、プレハブを作るのでAssetsの下にResourcesフォルダがなければ作る。
- 適当にプレハブをAssets/Resourcesの下につくる。(例:ButtonGroup)
- inspectorにaddressableのチェックがあるので、チェックを付ける
- チェックをつけると、addressableのpathが生成される(例:ButtonGroup)
- Resources_movedに勝手に移動される。もしくは、作られたファイルをResources以外のdirに入れる。
- 以下SampleScene.csをシーンに連携する
using System.Collections;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.AsyncOperations;
public class SampleScene : MonoBehaviour
{
void Start()
{
StartCoroutine(Load());
}
IEnumerator Load()
{
// プレハブ:GameObject、画像:Image、スプライト:Sprite
var handle = Addressables.LoadAssetAsync<GameObject>("ButtonGroup");
yield return handle;
if (handle.Status == AsyncOperationStatus.Succeeded)
{
var instance = Instantiate(handle.Result, GameObject.Find("Canvas").transform);
}
}
}
設定確認
- Unityメインメニュー/Window/Addressable/Groups/Profile/ManageProfiles
BuildTarget:[UnityEditor.EditorUserBuildSettings.activeBuildTarget]
LocalBuildPath:[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]
LocalLoadPath:{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]
RemoteBuildPath:ServerData/[BuildTarget]
RemoteLoadPath:http://localhost/[BuildTarget]
設定変更
設定変更したい場合は、
- Unityメインメニュー/Window/Addressable/Groups/ManageProfiles/Create/NewProfileを選択し、
- 各項目を入力していく
プレイモード選択
- Unityメインメニュー/Window/Addressable/Groups/PlayModeScriptを選択
- Use Asset Database (fastest):Unity内のアセットから
- Simulate Groups (Advanced):依存関係を分析して取得
- Use Existing Build(requires built groups):パックプレイモードで、サーバーから取得
Addressableの削除
- Window/Asset Management/Addressables/Groups
- Build/CleanBuild/AllとContent BuildersとBuild Pipeline Cache
Addressableの再生成
- Window/Asset Management/Addressables/Groups
- Build/New Build/Default Build Script
プロジェクト以下/ServerData/WebGL/とかにできる
ServerData/WebGL/catalog_v1.0.hash ServerData/WebGL/catalog_v1.0.json ServerData/WebGL/localization-assets-shared_assets_all.bundle ServerData/WebGL/localization-string-tables-chinese(traditional)(zh-tw)_assets_all.bundle ServerData/WebGL/localization-string-tables-english(unitedstates)(en-us)_assets_all.bundle ServerData/WebGL/localization-string-tables-japanese(japan)(ja-jp)_assets_all.bundle
AddressablesのRemoteLoadPathの変更
- Window/Asset Management/Addressables/Groups
- Profile:WebGLを選択
- ManageProfiles
- RemoteLoadPathを変更する
https://qiita.com/tetr4lab/items/1b26755089820b041b4f
参考
https://robamemo.hatenablog.com/entry/2021/01/08/195415