UnityのAddressableアセットシステムのEventViewerで参照カウントを可視化する方法をまとめました。
Unity2019.2.10
Addressable1.3.8
はじめに
この記事ではAddressableアセットシステムのEventViewerで参照カウントを可視化する方法をまとめました。
Addressableの概念や基礎知識についての説明はこの記事では省略しますが、
以下の記事にまとめていますので、必要に応じて参照してください。
準備
Event Viewerを使うには、設定で有効化する必要があります。
有効化するにはAddressableAssetsData/AddressableAssetSettings.asset
から
General > Send Profiler Events
にチェックを入れます。
Event Viewerを開く
設定が完了したらEvent Viewerを開きます。
Event ViewerはWindow > Asset Management > Addressables > Event Viewer
を選択することで開けます。
ロード・アンロードして参照カウントを見る
それでは実際に参照カウントを見てみます。
下記のようなスクリプトでGameObjectをAddressable経由でロード・アンロードします。
using UnityEngine; using UnityEngine.AddressableAssets; using System.Collections.Generic; using UnityEngine.ResourceManagement.AsyncOperations; public class Example : MonoBehaviour { private List<AsyncOperationHandle<GameObject>> _handles = new List<AsyncOperationHandle<GameObject>>(); private void Update() { if (Input.GetKeyDown(KeyCode.A)) { _handles.Add(Addressables.LoadAssetAsync<GameObject>("Example")); } if (Input.GetKeyDown(KeyCode.B)) { if (_handles.Count >= 1) { var handle = _handles[0]; Addressables.Release(handle); _handles.RemoveAt(0); } } } }
これを適当なGameObjectにアタッチして再生します。
もしこの時点でEventViewerに何も表示されない場合、ロードをしてからClearボタンを押してみてください。
今回の例ではResources
リソースを読み込むたびにここが増えていきます。
リリースするたびに参照カウントが減っていき、最終的にはアンロードされます。
特定のフレームをクリックすると、その時点での参照カウントの数字を見ることができます。