CRIWARE Unity Plugin Manual  Last Updated: 2024-12-05
CRIWARE Error Handler
CRIWAREのエラー出力を有効にするコンポーネントです。
このコンポーネントを作成すると、CRIWARE内部で検知した警告やエラー通知が有効になります。
開発段階のみこのコンポーネントを利用し、アプリケーションをリリース時にはコンポーネントを無効にしてください。

adx2u_errorhandler_float.png

[備考]
(*1) CRIWARE Error Handlerは[GameObject]->[CRIWARE]->[Create CRIWARE Error Handler]メニューからも作成できます。
この場合は、ゲームオブジェクトとして作成することになります。

設定項目

[Force Crash on Error]チェックボックス
このチェックボックスを有効にすると、CRIWAREの警告やエラーを本コンポーネントが検知すると、即座にアプリを強制的にクラッシュさせます。
実機などでアプリを実行するときのエラーの有無の確認に使用できます。

注意
この機能を使用する場合、本プラグインに起因する警告やエラーが発生すると、Unityエディタでもクラッシュします。
Unityエディタで開発する段階ではこの機能を無効にしてください。
[Don't Destroy On Load]チェックボックス
このチェックボックスを無効にすると、シーンチェンジ時にCRIWARE Error Handlerコンポーネントが破棄されます。
基本的にはチェックを有効にしていただき、シーンを越えてエラー処理が出来るようにすることを推奨します。

エラー出力を独自のログ出力方法に置き換える

例えば、デバッグビルドでのみエラーを確認したい場合は
CriWare.CriErrorNotifier.OnCallbackThreadUnsafe を以下のように利用することで独自のログ出力を行えます。
また、この方法を応用することで既存のクラスの内部処理の一部としてCRIWAREのエラー通知をハンドリングできます。
public class CustomErrorHandler : MonoBehaviour
{
private void Awake() => CriWare.CriErrorNotifier.OnCallbackThreadUnsafe += OnCallback;
private void OnDestroy() => CriWare.CriErrorNotifier.OnCallbackThreadUnsafe -= OnCallback;
private void OnCallback(string message)
{
#if DEVELOPMENT_BUILD || UNITY_EDITOR
if (message.StartsWith("E"))
Debug.LogError("Error:" + message);
else if (message.StartsWith("W"))
Debug.LogWarning("Warning:" + message);
else
Debug.Log(message);
#endif
}
}
注意
上記のような独自のログ出力コンポーネントを用意した場合、標準のError Handlerコンポーネントは削除しておくようご注意ください。