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"); }