Version: 2019.3
LanguageEnglish
  • C#

EditorGUI.DrawRect

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

public static void DrawRect(Rect rect, Color color);

Parameters

rectThe position and size of the rectangle to draw.
colorThe color of the rectange.

Description

Draws a filled rectangle of color at the specified position and size within the current editor window.

Use this to give blocks of Color to areas you want to highlight in the Inspector window of a GameObject in the Editor. You can also use them to simulate statistics in the Editor, for example, an in-Editor health bar.

//First, create a script called “MyScript” and attach it to the Inspector window you would like to effect.You can create your own script name, but remember to change it in the script too.
//Create a folder and name it “Editor” in the Assets folder (if it doesn’t already exist). Put this script into the Editor folder to see it work automatically.

using UnityEngine; using UnityEditor;

// Uncomment the following line after replacing "MyScript" with your script name: // [CustomEditor(typeof(MyScript))] [CanEditMultipleObjects] public class EditorGUIDrawRectExample : Editor { //This is the value of the Slider float m_Value;

public override void OnInspectorGUI() { //This is the Label for the Slider GUI.Label(new Rect(0, 300, 100, 30), "Rectangle Width"); //This is the Slider that changes the size of the Rectangle drawn m_Value = GUI.HorizontalSlider(new Rect(100, 300, 100, 30), m_Value, 1.0f, 250.0f);

//The rectangle is drawn in the Editor (when MyScript is attached) with the width depending on the value of the Slider EditorGUI.DrawRect(new Rect(50, 350, m_Value, 70), Color.green); } }