夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

UnityでDebug.LogとPrintの違い

本日はUnity枠です。

先日私の師匠よりUnityC#においてprint()によってログ出力ができるということを知りました。

print()は基本的にPythonでのコンソールログ出力に使用されます。

まずは私の師匠の知識が本当なのか試してみます。

using UnityEngine;

public class LogExample : MonoBehaviour
{
    void Start()
    {
        print("Hello, Log!");
    }
}

〇PrintとDebug.Logの違い

Debug.LogはUnityEngineの名前空間に含まれるデバッグ用のクラスです。

https://docs.unity3d.com/ScriptReference/Debug.Log.html#:~:text=Logs%20a%20message%20to%20the%20Unity%20Console.%20Use%20Debug.Log%20to

多機能であり、エラー、警告、情報とタイプを分けることもでき、ログのレベルを制御できるほか、デバッグビルド以外の状態ではコンパイルされないので実機での動作にとって良いです。

一方printはUnityで提供されるMonoBehaviourで提供されている機能です。

これはUnityの初期から使用でき、Pythonなどのコードにおいて非常に親しみを持たれているため実装されています。

 シンプルなデバッグ操作を可能としています。

スクリプティングAPIではDebug.Logと同じと書かれています。

https://docs.unity3d.com/ScriptReference/MonoBehaviour-print.html#:~:text=Description.%20Logs%20message%20to%20the%20Unity%20Console%20(identical%20to%20Debug.Log).

 しかしprintはリリースビルドでも実行されるため実機でのパフォーマンスへの影響を与える可能背があります。

 まとめるとprintは簡単に使用できるものの実機への影響などがある可能性があるほか、Debug.Logのほうがエラーの制御もできる点からDebug.Logを使用することが推奨できそうです。

本日は以上です。