【Unity】デバッグようにゲーム画面に情報を表示したい

OnGUI メソッドを使って、ゲーム画面上に情報を表示してみましょう。OnGUI メソッドは、Unityのゲーム内でGUI(グラフィカル・ユーザー・インターフェース)要素を描画するために使われるメソッドです。

GUILayout.Label 関数は、その名の通り、テキストラベルをGUI上に表示するために使用されます。この関数を使用することで、開発者はユーザーに対して簡単なテキスト情報を提供することができます。たとえば、ゲームのスコア、プレイヤーの状態、またはその他のデバッグ情報などが表示されることがあります。

OnGUI は毎フレーム呼ばれるので、動的な情報をリアルタイムで更新して表示するのに適しています。ただし、OnGUI を使用することはパフォーマンスに影響を与える可能性があるため、使用する際には注意が必要です。特に、大規模なアプリケーションや高いフレームレートを要求するゲームでは、新しいUIシステム(例えば、CanvasUI.Text)を使用することが推奨されています。

基本のサンプル

ゲームオブジェクトにアタッチするだけです

using UnityEngine;

public class ShowGUI : MonoBehaviour
{
    private void OnGUI()
    {
        GUILayout.Label("テスト");
    }
}

表示位置を指定したい場合


指定した表示位置にGUI要素を配置するには、GUILayout.BeginAreaGUILayout.EndArea を使用して、要素が表示される矩形領域を定義する方法が便利です。以下にその例を示します。

using UnityEngine;

public class ShowGUILayout : MonoBehaviour
{
    // 表示するエリアの位置とサイズを定義します
    public Rect displayArea = new Rect(10, 10, 200, 50); // x, y, width, height

    private void OnGUI()
    {
        // 指定した矩形領域内にGUIコントロールを開始
        GUILayout.BeginArea(displayArea);

        // ラベルを表示
        GUILayout.Label("テスト");

        // GUIコントロールの終了
        GUILayout.EndArea();
    }
}

このコードでは、displayArea 変数を使用してラベルが表示される位置とサイズを定義しています。Rect のパラメーター (10, 10, 200, 50) は、ラベルがスクリーン上での位置 (x, y) と矩形の widthheight を指定しています。BeginAreaEndArea の間に置かれたすべてのGUI要素(この場合は GUILayout.Label)は、指定されたエリア内に配置されます。

この方法を使うことで、任意の場所にGUI要素を簡単に配置することができます。また、displayArea の値を変更することで、表示位置やサイズを動的に変えることも可能です。

UI,Unity

Posted by hidepon