ARDKロギングの使用
ARDKには、ほとんどのARDKクラスに対してロギング機能が搭載されています。AR体験の開発中にロギングを有効にすると、デバッグや、ARDKの内部ステートの診断、ARDKオブジェクトのライフサイクルの把握などに役立ちます。
ARDKロギングを有効にする
注釈
デバッグのロギングを行うと、パフォーマンスに影響を及ぼす可能性のあるログメッセージが多数生成される可能性があるため、アプリのリリースバージョンをビルドする前にARDK_DEBUGを削除してください。
ARDKのロギングを有効にして開発するにはまず、デバッグレベルのロギングを有効にするARDK_DEBUGシンボルを定義します。Edit(編集) > Project Settings(プロジェクト設定) > Player(プレイヤー) の順に移動し、Other Settings(その他の設定) パネルで Script Compilation(スクリプトのコンパイル) までスクロールします。Scripting Define Symbols(スクリプトの定義シンボル) で + を押し、 ARDK_DEBUG
を追加します。
次に、プロジェクト内のいずれかのスクリプトの初期化コードで、 ARLog を使用して ARLog.EnableLogFeature()
を呼び出します。通常、スクリプトの Awake()
または Start()
メソッドに追加します。Unityの開発ビルドを使用しており、開発ビルドでロギングを行う場合は、 ARLog.EnableLogFeature()
の呼び出しを #if DEVELOPMENT_BUILD
の条件付きでラップすることができます。
ログ情報を生成するARDKの名前空間またはクラスを指定する必要があります。たとえば、Nianticの名前空間のすべてのクラスや名前空間のログを生成する場合は、 ARLog.EnableLogFeature("Niantic")
を呼び出します。
次の例では、 Niantic.ARDK.VirtualStudio
名前空間のクラスに対してロギングを有効にします。
using Niantic.ARDK.Utilities.Logging;
public class MySceneScript : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
// Enable ARDK logging
ARLog.EnableLogFeature("Niantic.ARDK.VirtualStudio");
// ...other initialization code
}
}
ログ情報をキャプチャする
ロギングが有効になっていると、ARDKのデフォルトのログハンドラによって、UnityのDebug.Logにメッセージが送信されます。モックモードまたはリモートモードでアプリを実行すると、UnityコンソールにARDKのログメッセージが表示されます。
#Niantic.ARDK.VirtualStudio._VirtualStudioManager#: VirtualStudioMaster Initialized.
UnityEngine.Debug:Log (object)
#Niantic.ARDK.AR.Configuration.ARSessionChangesCollector#: Registered Niantic.ARDK.Extensions.ARDepthManager as ARConfigChanger.
UnityEngine.Debug:Log (object)
...
カスタムのログハンドラにログメッセージを出力する必要がある場合は、 IARLogHandler の実装を作成し、カスタムのログハンドラのインスタンスを ARLog.Loghandler
に設定する必要があります。次の例は、シンプルなカスタムのログハンドラです。
using Niantic.ARDK.Utilities.Logging;
public class CustomLogHandler : IARLogHandler
{
// Gets the singleton instance of this log handler.
public static readonly CustomLogHandler Instance = new CustomLogHandler();
private CustomLogHandler()
{
}
// ...implement Debug(), Warn(), Release(), Error() as needed...
}
ロギングを有効にしたコードで、カスタムのログハンドラを設定します。
void Start()
{
// Set custom log handler
ARLog.LogHandler = CustomLogHandler.Instance;
// Enable ARDK logging
ARLog.EnableLogFeature("Niantic");
}