NoaDownloadCallbacks
ダウンロードに関連するイベントを設定します。
NoaDownloadCallbacksを継承したクラスをNOA Debuggerの公開プロパティに引き渡すことで、ダウンロードに関連するイベントをカスタマイズできます。
オーバーライド可能な要素
Methods
| メソッド名 | 説明 |
|---|---|
| OnBeforeDownload(info) | ダウンロード処理の前に実行するメソッドです。 引数と返り値はどちらも後述のNoaDownloadInfoです。 値を編集して返した場合はNOA Debuggerのダウンロード処理とOnAfterDownloadに反映します。 |
| OnAfterDownload(info, status) | ダウンロード処理の後に実行するメソッドです。 NOA Debuggerのダウンロード処理を実行しなかった場合でもこのメソッドは実行します。 |
Properties
| プロパティ名 | 説明 |
|---|---|
| IsAllowBaseDownload | NOA Debuggerのダウンロード処理を実行するかを判断します。 デフォルトはtrueで、falseに変更した場合はダウンロード処理を実行しません。 |
関連する型
INoaDownloadCallbacks
NoaDownloadCallbacksのオーバーライド可能なメソッドとプロパティは、このインターフェースで定義しています。
カスタムクラスで複数のコールバックの定義を集約したい場合や、既存のカスタムクラスを継承しつつコールバック機能を追加したい場合は、NoaDownloadCallbacksクラスの代わりにこのインターフェースを利用することで実現できます。
NoaDownloadInfo
NoaDownloadCallbacks内のメソッド全般で使用する、ダウンロードに関連する情報を保持する構造体です。
| パラメータ名 | 説明 |
|---|---|
| FileName | 拡張子を含んだダウンロードファイル名です。 |
| Json | ダウンロードファイルの中身となるテキストです。 |
NoaDownloadStatus
OnAfterDownloadの引数で使用する、ダウンロード処理の結果を表す列挙型です。
| 要素名 | 説明 |
|---|---|
| Succeeded | NOA Debuggerのダウンロードが成功した時のステータスです。 ※Web環境のみ、ダウンロードの終了検知ができないためこのステータスで返します。 |
| Failed | エラーやキャンセルなど、なんらかの理由でNOA Debuggerのダウンロードに失敗した時のステータスです。 |
| NotExecuted | NOA Debuggerのダウンロードを実行しなかった時のステータスです。 |
サンプルコード
#if NOA_DEBUGGER
using NoaDebugger;
using UnityEngine;
// NOA Debuggerのダウンロード処理前後にイベントを実行する場合の例
public class ExampleDownloader : NoaDownloadCallbacks
{
public override NoaDownloadInfo OnBeforeDownload(NoaDownloadInfo info)
{
// ダウンロードするファイル名を編集
info.FileName = $"Sample-{info.FileName}";
// ダウンロードするテキストをログ出力
Debug.Log(info.Json);
return info;
}
public override void OnAfterDownload(NoaDownloadInfo info, NoaDownloadStatus status)
{
// ダウンロード後のステータスに合わせた処理を実行
// info.FileNameはOnBeforeDownloadで編集した値になります
switch (status)
{
case NoaDownloadStatus.Succeeded:
Debug.Log($"Download succeeded: {info.FileName}");
break;
case NoaDownloadStatus.Failed:
Debug.LogError($"Download failed: {info.FileName}");
break;
}
}
}
// NOA Debuggerのダウンロード処理を実行せず、独自のダウンロード処理を実行する場合の例
public class ExampleOriginalDownloader : NoaDownloadCallbacks
{
// IsAllowBaseDownloadをfalseに設定することでNOA Debuggerのダウンロード処理を拒否
public override bool IsAllowBaseDownload => false;
public override NoaDownloadInfo OnBeforeDownload(NoaDownloadInfo info)
{
// 独自の処理を実行
AppendToFile(info.Json);
return info;
}
void AppendToFile(string jsonText)
{
// ダウンロードの代わりにローカルファイルに追記する例
string filePath = System.IO.Path.Combine(Application.persistentDataPath, "log.txt");
System.IO.File.AppendAllText(filePath, jsonText + "\n");
}
}
// 独自のフラグでNOA Debuggerのダウンロード処理の実行有無を制御する場合の例
public class ExampleSwitchableDownloader : NoaDownloadCallbacks
{
bool isAllowBaseDownload = true;
public override bool IsAllowBaseDownload => isAllowBaseDownload;
public override NoaDownloadInfo OnBeforeDownload(NoaDownloadInfo info)
{
// ダウンロードテキストが比較的短い場合ダウンロードの代わりにログ出力を行う例
if (info.Json.Length < 500)
{
Debug.Log(info.Json);
isAllowBaseDownload = false;
}
return info;
}
}
#endif
