facebook twitter hatena line email

「Unity/Addressable」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(Addressableの作り方)
行64: 行64:
 
*Simulate Groups (Advanced):依存関係を分析して取得
 
*Simulate Groups (Advanced):依存関係を分析して取得
 
*Use Existing Build(requires built groups):パックプレイモードで、サーバーから取得
 
*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
 +
#プレビュー実行
  
 
==Addressableの削除==
 
==Addressableの削除==
#Window/Asset Management/Addressables/Groups
+
#Unityメインメニュー/Window/Asset Management/Addressables/Groups
 
#Build/CleanBuild/AllとContent BuildersとBuild Pipeline Cache
 
#Build/CleanBuild/AllとContent BuildersとBuild Pipeline Cache
  
 
==Addressableの再生成==
 
==Addressableの再生成==
#Window/Asset Management/Addressables/Groups
+
#Unityメインメニュー/Window/Asset Management/Addressables/Groups
 
#Build/New Build/Default Build Script
 
#Build/New Build/Default Build Script
  

2021年7月30日 (金) 23:49時点における版

Addressableとは

外部サーバーで使えるResources

インストール

  1. Unityメインメニュー/Window/Package Manager/Unity Registryが選択"addressable"を検索
  2. Addressablesをinstall

Addressableの作り方

  1. 例として、プレハブを作るのでAssetsの下にResourcesフォルダがなければ作る。
  2. 適当にプレハブをAssets/Resourcesの下につくる。(例:ButtonGroup)
  3. inspectorにaddressableのチェックがあるので、チェックを付ける
  4. チェックをつけると、addressableのpathが生成される(例:ButtonGroup)
  5. Resources_movedに勝手に移動される。もしくは、作られたファイルをResources以外のdirに入れる。
  6. 以下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);
        }
    }
}

プレビュー実行すると、シーンのCanvasの下に、Addressableで作った、プレハブが表示される。

"Exception encountered in operation CompletedOperation, status=Failed, result= : Exception of type"エラーが出るとき

Addressable化したもののパスが合ってるか確認、PlayModeScript(後述)が、サーバーから取得するようになってないか。

設定確認

  1. 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]

設定変更

設定変更したい場合は、

  1. Unityメインメニュー/Window/Addressable/Groups/ManageProfiles/Create/NewProfileを選択し、
  2. 各項目を入力していく

プレイモード選択

  1. Unityメインメニュー/Window/Addressable/Groups/PlayModeScriptを選択
  • Use Asset Database (fastest):Unity内のアセットから
  • Simulate Groups (Advanced):依存関係を分析して取得
  • Use Existing Build(requires built groups):パックプレイモードで、サーバーから取得

Addressableでビルドしたものを、Addressableを取得

  1. 上記のPlayModeScriptを"Use Existing Build"へ
  2. Addressableをビルドする(Unityメインメニュー/Window/Asset Management/Addressables/Groups/Build/New Build/Default Build Script
  3. プレビュー実行

Addressableの削除

  1. Unityメインメニュー/Window/Asset Management/Addressables/Groups
  2. Build/CleanBuild/AllとContent BuildersとBuild Pipeline Cache

Addressableの再生成

  1. Unityメインメニュー/Window/Asset Management/Addressables/Groups
  2. 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の変更

  1. Window/Asset Management/Addressables/Groups
  2. Profile:WebGLを選択
  3. ManageProfiles
  4. RemoteLoadPathを変更する

https://qiita.com/tetr4lab/items/1b26755089820b041b4f

参考

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