Legacy Documentation: Version 2018.2 (Go to current version)
  • C#


Suggest a change


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.


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.



public static int depth;


The sorting depth of the currently executing GUI behaviour.

Set this to determine ordering when you have different scripts running simultaneously. GUI elements drawn with lower depth values will appear on top of elements with higher values (ie, you can think of the depth as "distance" from the camera).

Note:To see this example working, you will need to create 2 scripts. Remember to name the scripts with the same name as the class names, else it will not work.

One Button behind the other.

// Makes this button go back in depth over the example2 class one.

using UnityEngine; using System.Collections;

public class Example1 : MonoBehaviour { public int guiDepth = 0; public Example2 example2;

void OnGUI() { GUI.depth = guiDepth;

if (GUI.RepeatButton(new Rect(0, 0, 100, 100), "GoBack")) { guiDepth = 1; example2.guiDepth = 0; } } }

And copy this other example to another script:

using UnityEngine;
using System.Collections;

// Makes this button go back in depth over the example1 class one.

public class Example2 : MonoBehaviour { public int guiDepth = 1; public Example1 example1;

void OnGUI() { GUI.depth = guiDepth;

if (GUI.RepeatButton(new Rect(50, 50, 100, 100), "GoBack")) { guiDepth = 1; example1.guiDepth = 0; } } }

Did you find this page useful? Please give it a rating: