Debug クラスは、エディター上の情報を視覚化し、実行中のプロジェクトで何が起こっているのかを理解したり調査したりするのに役立ちます。例えば、Console (コンソール) ウィンドウにメッセージを出力したり、シーンビューやゲームビューに視覚化のためのラインを描いたり、スクリプトからエディターの再生モードを一時停止したりすることができます。
このページでは、Debug クラスの概要と、Debug クラスを使ってスクリプトを作成する際の一般的な使用方法について説明します。Debug クラスのすべてのメンバーの詳細なリファレンスについては、Debug スクリプトリファレンス を参照してください。
Unity 自体も、エラー、警告、メッセージを Console ウィンドウに出力することがあります。Debug クラスは、以下のように、独自のコードを使って全く同じことを行う機能を提供します。
Debug.Log("This is a log message.");
Debug.LogWarning("This is a warning message!");
Debug.LogError("This is an error message!");
3 つのタイプ (エラー、警告、メッセージ) のそれぞれのアイコンが、Console ウィンドウに表示されます。
Unity や独自のコードによって Console ウィンドウに書き込まれたものはすべて、ログファイル にも書き込まれます。
Console で Error Pause が有効になっていると、Debug クラスを使って Console に書き込まれたエラーは、Unity の再生モードを一時停止させます。
また、任意でこれらのログメソッドに第 2 パラメーターを指定して、メッセージが特定のゲームオブジェクトに関連していることを示すことができます。
using UnityEngine;
public class DebugExample : MonoBehaviour
{ void Start()
{
Debug.LogWarning("I come in peace!", this.gameObject);
}
}
これにより、Console 上でメッセージをクリックすると、そのメッセージに関連するゲームオブジェクトが Hierarchy 上で強調表示され、メッセージがどのゲームオブジェクトに関連しているかを確認することができるというメリットがあります。下の画像では、“I come in peace!” という警告メッセージをクリックすると、“Alien (8) ” というゲームオブジェクトがハイライトされることを示しています。
また、Debug クラスはシーンビューやゲームビューで線を描くための 2 つのメソッドを提供しています。これらは DrawLine と DrawRay です。
この例では、シーンのすべてのスフィアゲームオブジェクトに Debug.DrawLine を使ったスクリプトを加え、Y が 0 である平面からの垂直距離を示します。なお、この例の最後のパラメーターは、ラインがエディターに表示されている時間を秒で表しています。
using UnityEngine;
public class DebugLineExample : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
float height = transform.position.y;
Debug.DrawLine(transform.position, transform.position - Vector3.up * height, Color.magenta, 4);
}
}
そして、シーンビューでの結果は次のようになります。
Debug
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.