NOA DebuggerNOA Debugger
  • v1.7.0
  • v1.6.1
  • v1.5.0
  • v1.4.0
  • v1.3.0
  • v1.2.0
  • v1.1.1
  • v1.0.0
Demo
Contact
Buy
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • v1.7.0
  • v1.6.1
  • v1.5.0
  • v1.4.0
  • v1.3.0
  • v1.2.0
  • v1.1.1
  • v1.0.0
Demo
Contact
Buy
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • 日本語
  • English
  • NoaUnloadAssetsCallbacks

NoaUnloadAssetsCallbacks

NOA Debuggerが実行するアセット破棄に関連するイベントを設定します。

NoaUnloadAssetsCallbacksを継承したクラスをNoaProfilerに引き渡すことで、アセット破棄に関連するイベントをカスタマイズできます。

オーバーライド可能な要素

Methods

メソッド名説明
OnBeforeUnloadAssets()アセット破棄処理の前に実行するメソッドです。
OnAfterUnloadAssets()アセット破棄処理の後に実行するメソッドです。
NOA Debuggerのアセット破棄処理を実行しなかった場合でもこのメソッドは実行します。

Properties

プロパティ名説明
IsAllowBaseUnloadAssetsNOA Debuggerのアセット破棄処理を実行するかを判断します。
デフォルトはtrueで、falseに変更した場合はアセット破棄処理を実行しません。

関連する型

INoaUnloadAssetsCallbacks

NoaUnloadAssetsCallbacksのオーバーライド可能なメソッドとプロパティは、このインターフェースで定義しています。

カスタムクラスで複数のコールバックの定義を集約したい場合や、既存のカスタムクラスを継承しつつコールバック機能を追加したい場合は、NoaUnloadAssetsCallbacksクラスの代わりにこのインターフェースを利用することで実現できます。

サンプルコード

#if NOA_DEBUGGER
using NoaDebugger;
using System;
using UnityEngine;

// NOA Debuggerのアセット破棄処理前後にイベントを実行する場合の例
public class ExampleAssetUnloader : NoaUnloadAssetsCallbacks
{
    // アセット破棄実行前後のメモリ使用量をログ出力する例
    public override void OnBeforeUnloadAssets()
    {
        Debug.Log($"Total allocated memory before Unload Assets: {NoaProfiler.LatestMemoryInfo.CurrentAllocatedMemoryMB} MB");
        Debug.Log($"Mono used memory before Unload Assets: {NoaProfiler.LatestMemoryInfo.CurrentMonoUsedSizeMB} MB");
        Debug.Log($"Total reserved memory before Unload Assets: {NoaProfiler.LatestMemoryInfo.CurrentReservedMemoryMB} MB");
    }

    public override void OnAfterUnloadAssets()
    {
        GC.Collect();

        Debug.Log($"Total allocated memory after Unload Assets: {NoaProfiler.LatestMemoryInfo.CurrentAllocatedMemoryMB} MB");
        Debug.Log($"Mono used memory after Unload Assets: {NoaProfiler.LatestMemoryInfo.CurrentMonoUsedSizeMB} MB");
        Debug.Log($"Total reserved memory after Unload Assets: {NoaProfiler.LatestMemoryInfo.CurrentReservedMemoryMB} MB");
    }
}

// 独自のフラグでNOA Debuggerのアセット破棄処理の実行有無を制御する場合の例
public class ExampleOriginalAssetUnloader : NoaUnloadAssetsCallbacks
{
    bool isAllowBaseUnloadAssets = true;
    public override bool IsAllowBaseUnloadAssets => isAllowBaseUnloadAssets;

    // メモリ使用量が一定の閾値を超えた場合のみアセット破棄を実行する例
    const float allocatedMemoryThresholdMB = 500.0f;

    public override void OnBeforeUnloadAssets()
    {
        float currentAllocatedMemoryMB = NoaProfiler.LatestMemoryInfo.CurrentAllocatedMemoryMB;
        isAllowBaseUnloadAssets = currentAllocatedMemoryMB >= allocatedMemoryThresholdMB;
    }
}
#endif

リンク集

関連機能

  • Profilerについて

使用クラス

  • NoaProfiler