Spatial.io で開発を行っていく際に、動作確認や不具合の原因究明のために Debug.Log を出力し、その内容を確認したい場面があるかと思います。この記事では、Spatial.io のメタバース環境で Debug.Log を確認する方法について解説します。
1. 動作環境
- Windows 11
- Unity 2021.3.44f1
- Spatial Creator Toolkit
- Web ブラウザ(今回はChrome)
2. 実際のコードとUnityエディタでの確認
UnityでC#スクリプトを作成し、Debug.Log()
, Debug.LogWarning()
, Debug.LogError()
を使用してメッセージを出力する簡単な例を以下に示します。
using UnityEngine;
public class DebugLogExample : MonoBehaviour
{
void Start()
{
// 通常のデバッグメッセージを出力
Debug.Log($"[DebugLogExample] これは通常のデバッグメッセージです。");
// 警告メッセージを出力
Debug.LogWarning($"[DebugLogExample] これは警告メッセージです。");
// エラーメッセージを出力
Debug.LogError($"[DebugLogExample] これはエラーメッセージです。");
}
}
解説:
- 上記のスクリプト(
DebugLogExample.cs
)を作成しUnityゲーム内のGameObjectにアタッチします。 -
Start()
メソッドは、シーン開始時に一度だけ呼び出され、それぞれのログメッセージを出力します。
Unityエディタ内での確認:
Unityエディタでシーンを再生すると、コンソールウィンドウ(メニュー: Window > General > Console)に以下のようにログが表示されます。
3. Spatial.io環境でのログ確認方法
Unityエディタでログが確認できたら、次はSpatial.io環境での確認です。主なアプローチは以下の通りです。
-
F12
で開発者ツール起動 -
Console
タブを選択 - フィルタに
[DebugLogExample]
を追加して関連ログのみを表示
4. Spaital ILoggingService の解説
ILoggingService
は Spatial Creator Toolkit で提供されるロギングサービスで、エラーログの管理と表示を行います。
現在はコンソールにエラーを記録するだけですが、将来的には開発者が確認できるリモート サーバーにログを記録するサービスを提供する予定です。
2つのオーバーロッドがあり、用途に応じて使い分けます。
1. LogError(string, Exception, Dictionary)
概要:
- エラーメッセージを主に指定し、必要に応じて例外や追加データも付加できます。
シグネチャ:
void LogError(
string message,
Exception exception = null,
Dictionary<string, object> data = null
)
使用例:
using System;
using System.Collections.Generic;
using SpatialSys.UnitySDK;
public class LoggingExample : MonoBehaviour
{
void Start()
{
try
{
// 例外を発生させるコード
throw new InvalidOperationException("無効な操作が行われました。");
}
catch (Exception ex)
{
// エラーメッセージと例外をログに記録
SpatialBridge.loggingService.LogError(
"エラーが発生しました。",
ex,
new Dictionary<string, object>
{
{ "詳細", "追加のデータやコンテキスト情報" }
}
);
}
}
}
2.LogError(Exception, Dictionary)
概要:
- Exception オブジェクトを主に指定し、必要に応じて追加データを付加できます。
シグネチャ:
void LogError(
Exception exception,
Dictionary<string, object> data = null
)
使用例:
using System;
using System.Collections.Generic;
using SpatialSys.UnitySDK;
public class LoggingExample : MonoBehaviour
{
void Start()
{
try
{
// 例外を発生させるコード
throw new NullReferenceException("オブジェクト参照が設定されていません。");
}
catch (Exception ex)
{
// 例外と追加データをログに記録
SpatialBridge.loggingService.LogError(
ex,
new Dictionary<string, object>
{
{ "操作", "データの読み込み" },
{ "ユーザーID", 12345 }
}
);
}
}
}
まとめ
Spatial.io環境でのデバッグログ確認は、まずUnityエディタ内で Debug.Log 系を使い徹底的に行い、その後ブラウザの開発者コンソールを補助的に使用するのが基本的な流れとなります。
より詳細なエラー情報や将来的なプラットフォーム連携を考慮する場合は、SpatialBridge.loggingService.LogError の活用を検討しましょう。
ログを効果的に活用して、より快適なメタバース開発を進めましょう。