Version: 2022.2
public static int depth ;

描述

当前正在执行的 GUI 行为的排序深度。

设置该属性可以确定同时运行的多个不同脚本的排序。 使用较小深度值绘制的 GUI 元素将显示在深度值较大的元素上方(您可以将深度想象为到摄像机的“距离”)。

注意:要使该示例正常工作,您需要创建 2 个脚本。 请记得将脚本命名为与类名称相同的名称, 否则示例代码将不起作用。

\ 一个按钮位于另一个的后方。

using UnityEngine;
using System.Collections;

// Makes this button go back in depth

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

private float buttonX, buttonY;

void Start() { buttonX = (Screen.width / 2) - 100; buttonY = (Screen.height / 2) - 100; }

void OnGUI() { GUI.depth = guiDepth; GUI.color = Color.yellow;

GUIStyle size = new GUIStyle("button"); size.fontSize = 16;

if (GUI.RepeatButton(new Rect(buttonX, buttonY, 200, 100), "Go Backwards", size)) { guiDepth = 1; example2.guiDepth = 0; } } }

将此另一个示例复制到另一个脚本:

using UnityEngine;
using System.Collections;

// Makes this button go back in depth

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

private float buttonX, buttonY;

void Start() { buttonX = (Screen.width / 2) - 50; buttonY = (Screen.height / 2) - 50; }

void OnGUI() { GUI.depth = guiDepth; GUI.color = Color.green;

GUIStyle size = new GUIStyle("button"); size.fontSize = 16;

if (GUI.RepeatButton(new Rect(buttonX, buttonY, 200, 100), "Go Backwards", size)) { guiDepth = 1; example1.guiDepth = 0; } } }