facebook twitter hatena line email

「Unity/Addressable」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(Addressableでビルドしたものを、Addressableを取得)
(同じ利用者による、間の12版が非表示)
行1: 行1:
==Addressableをscriptで実行==
+
[[Unity/Addressable/基本]]
[[Unity/Editor/Addressableビルド]] [ショートカット]
+
  
==Addressableとは==
+
[[Unity/Addressable/ローカルサーバー]]
外部サーバーで使えるResources
+
  
==インストール==
+
[[Unity/Addressable/シーンロード]]
#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をシーンに連携する
+
 
+
<pre>
+
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);
+
        }
+
    }
+
}
+
</pre>
+
 
+
プレビュー実行すると、シーンのCanvasの下に、Addressableで作った、プレハブが表示される。
+
 
+
==="Exception encountered in operation CompletedOperation, status=Failed, result= : Exception of type"エラーが出るとき===
+
Addressable化したもののパスが合ってるか確認、PlayModeScript(後述)が、サーバーから取得するようになってないか。
+
 
+
==設定確認==
+
#Unityメインメニュー/Window/AssetManagement/Addressable/Groups/Profile/ManageProfiles
+
<pre>
+
BuildTarget:[UnityEditor.EditorUserBuildSettings.activeBuildTarget]
+
LocalBuildPath:[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]
+
LocalLoadPath:{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]
+
RemoteBuildPath:ServerData/[BuildTarget]
+
RemoteLoadPath:http://localhost/[BuildTarget]
+
</pre>
+
 
+
===設定変更===
+
設定変更したい場合は、
+
#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でビルドしたものを、Addressableを取得==
+
#上記のPlayModeScriptを"Use Existing Build"へ
+
#Addressableをビルドする(Unityメインメニュー/Window/Asset Management/Addressables/Groups/Build/New Build/Default Build Script
+
#プレビュー実行
+
 
+
ちなみにBuildファイルは以下とかdefaultlocalgroup_assets_all_69745f2bc65176429eb31f083306322b.bundleというようなファイルで出来る。
+
 
+
*Library/com.unity.addressables/aa/WebGL/WebGL/AddressablesLink
+
*Library/com.unity.addressables/aa/WebGL/WebGL/catalog.json
+
*Library/com.unity.addressables/aa/WebGL/WebGL/settings.json
+
*ServerData/WebGL
+
 
+
==Addressableの削除==
+
#Unityメインメニュー/Window/Asset Management/Addressables/Groupsを選択
+
#以下3種類削除操作がある
+
 
+
* Build/CleanBuild/All → 以下2つのLibrary/com.unity.addressablesと、Library/BuildCacheが、削除される
+
* Build/CleanBuild/"Content Builders"  → Library/com.unity.addressables が、削除される
+
* Build/CleanBuild/"Build Pipeline Cache" → Library/BuildCache が、削除される
+
 
+
==Addressableの再生成==
+
#Unityメインメニュー/Window/Asset Management/Addressables/Groups
+
#Build/New Build/Default Build Script
+
 
+
プロジェクト以下/ServerData/WebGL/とかにできる
+
<pre>
+
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
+
</pre>
+
 
+
==ビルド時のパスを確認==
+
#Assets/AddressableAssetsData/AssetGroups/Default Local Group
+
#BuildPathとLoadPathに何を設定してるか確認。
+
 
+
*LocalBuildPath:Library/com.unity.addressables/aa/WebGL/WebGL
+
*LocalLoadPath:{UnityEngine.AddressableAssets.Addressables.RuntimePath}/WebGL
+
*RemoteBuildPath:ServerData/WebGL
+
*RemoteLoadPath:ttp://localhost/WebGL
+
 
+
==サーバーにAddressableファイルを読み込んで表示==
+
#Assets/AddressableAssetsData/AssetGroups/Default Local Group
+
#BuildPathにRemoteBuildPathを設定し、
+
#LoadPathにRemoteLoadPathを設定
+
#Addressableをビルドし、(Unityメインメニュー/Window/Asset Management/Addressables/Groups/Build/New Build/Default Build Script
+
#ServerData/WebGLにできたファイルを自分のサーバー(例:ttp://localhost/WebGL/~)へ上げる。
+
#Unityメインメニュー/Window/Addressable/Groups/Profile/ManageProfilesのRemoteLoadPathをttp://localhost/[BuildTarget]から、自分のサーバー(例:ttp://localhost/WebGL/~)のファイルのある場所へ。
+
#プレイモード(Unityメインメニュー/Window/Addressable/Groups/PlayModeScript)をUse Existing Buildへ
+
#プレビュー表示すると表示される。
+
 
+
==AddressablesのRemoteLoadPathの変更==
+
#Window/Asset Management/Addressables/Groups
+
#Profile:WebGLを選択
+
#ManageProfiles
+
#RemoteLoadPathを変更する
+
 
+
https://qiita.com/tetr4lab/items/1b26755089820b041b4f
+
 
+
==StreamingAssetsディレクトリについて==
+
Addressableをビルドして、UnityプロジェクトのWebGLをBuildすると、
+
*Build
+
*TemplateData
+
*index.html
+
と同じ場所に、
+
*StreamingAssets
+
ができる。
+
 
+
=="Player content must be built before entering play mode with packed data."エラーが出る場合==
+
詳細エラーメッセージ
+
<pre>
+
Player content must be built before entering play mode with packed data.  This can be done from the Addressables window in the Build->Build Player Content menu command.
+
UnityEngine.GUIUtility:ProcessEvent
+
</pre>
+
一度addressableをビルドする。
+
 
+
==プロジェクトをビルドしたときのAddressableリンクデータ==
+
プロジェクトビルドファイルの下に、"StreamingAssets"ができる。
+
これがないとAddressableにアクセスできない。
+
 
+
==参考==
+
https://robamemo.hatenablog.com/entry/2021/01/08/195415
+
 
+
https://light11.hatenadiary.com/entry/2019/12/26/225232
+
 
+
https://light11.hatenadiary.com/entry/2020/07/29/202755
+

2022年9月7日 (水) 16:53時点における版

Unity/Addressable/基本

Unity/Addressable/ローカルサーバー

Unity/Addressable/シーンロード