NoaApplicationResetCallbacks
アプリケーションリセット機能に関連するイベントを設定します。
NoaApplicationResetCallbacksを継承したクラスをNoaControllerに引き渡すことで、アプリケーションリセット機能に関連するイベントをカスタマイズできます。
オーバーライド可能な要素
Methods
| メソッド名 | 説明 |
|---|---|
| OnBeforeApplicationReset() | アプリケーションリセット処理の前に実行するメソッドです。 |
| OnAfterApplicationReset() | アプリケーションリセット処理の後に実行するメソッドです。 NOA Debuggerのアプリケーションリセット処理を実行しなかった場合でもこのメソッドは実行します。 |
Properties
| プロパティ名 | 説明 |
|---|---|
| IsAllowBaseApplicationReset | NOA Debuggerのアプリケーションリセット処理を実行するかを判断します。 デフォルトはtrueで、falseに変更した場合はアプリケーションリセット処理を実行しません。 |
関連する型
INoaApplicationResetCallbacks
NoaApplicationResetCallbacksのオーバーライド可能なメソッドとプロパティは、このインターフェースで定義しています。
カスタムクラスで複数のコールバックの定義を集約したい場合や、既存のカスタムクラスを継承しつつコールバック機能を追加したい場合は、NoaApplicationResetCallbacksクラスの代わりにこのインターフェースを利用することで実現できます。
サンプルコード
#if NOA_DEBUGGER
using NoaDebugger;
using UnityEngine;
// NOA Debuggerのアプリケーションリセット処理後にイベントを実行する場合の例
public class ExampleApplicationResetter : NoaApplicationResetCallbacks
{
public override void OnAfterApplicationReset()
{
// 遷移後のシーン名を出力
Debug.Log($"Transitioned to: {SceneManager.GetActiveScene().name}");
}
}
// 独自のフラグでNOA Debuggerのアプリケーションリセット処理の実行有無を制御する場合の例
public class ExampleOriginalApplicationResetter : NoaApplicationResetCallbacks
{
bool isAllowBaseApplicationReset = true;
public override bool IsAllowBaseApplicationReset => isAllowBaseApplicationReset;
public override void OnBeforeApplicationReset()
{
// 滞在中のシーン状況に合わせて処理を分岐させる例
switch (ExampleSceneManager.Instance.CurrentScene)
{
case SceneType.Boot:
case SceneType.Splash:
isAllowBaseApplicationReset = false;
break;
case SceneType.Title:
case SceneType.Home:
isAllowBaseApplicationReset = true;
break;
case SceneType.Battle:
ExampleBattleManager.Instance.InterruptBattle();
isAllowBaseApplicationReset = true;
break;
default:
isAllowBaseApplicationReset = false;
ExampleSceneManager.Instance.LoadScene(SceneType.Home);
break;
}
}
}
#endif
