news 2026/10/15 3:26:50

Unity学习笔记(十九)GUI控件(三)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Unity学习笔记(十九)GUI控件(三)

窗口

普通窗口

private Rect dragWindow = new Rect(400, 400, 200, 150);

第一个参数 id是窗口的唯一ID,不要和别的窗口重复

委托参数 是用于绘制窗口的函数 传入即可

GUI.Window(1, new Rect(100, 100, 200, 150),DrawWindow,"测试窗口");

id 除了区分不同窗口 还可以在一个函数中处理多个窗口的逻辑

通过id区分他们

GUI.Window(2, new Rect(100, 350, 200, 150),DrawWindow,"测试窗口");

模态窗口


可以让该其他控件不在有用 只要该窗口存在,其他控件的按钮就点击不了

.只能点击该窗口上的控件,你可以理解为该窗口在最上层,其他按钮都点击不到了
只能在窗口上点击控件 做警告窗口

GUI.ModalWindow(3, new Rect(300, 350, 200, 150), DrawWindow, "模态窗口");

拖动窗口

位置赋值是前提 ,还需要调用api GUI.DrawWindow

dragWindow = GUI.Window(4, dragWindow, DrawWindow, "拖动窗口");

GUI.DrawWindow 该api写在函数窗口中调用 ,可以让窗口被拖动
传入rect参数的重载作用
是决定窗口中哪一部分位置 可以被拖动

默认不填 就是无参重载,所有位置都能被拖动
不管是模态窗口还是窗口都可以 调用该方法拖动

private void DrawWindow(int id) { switch (id) { case 1: GUI.Button(new Rect(0, 50, 30, 20), "1"); break; case 2: GUI.Button(new Rect(0, 50, 30, 20), "2"); break; case 3: GUI.Button(new Rect(0,50, 30, 20), "3"); break; case 4: GUI.DragWindow(); break; } }

自定义皮肤样式

全局颜色

全局的颜色 影响 背景和文字

GUI.color = Color.blue;

文本着色颜色

会和全局颜色相乘

GUI.contentColor = Color.white;

背景元素着色颜色

会和全局颜色相乘

GUI.backgroundColor = Color.black;

整体皮肤样式

不设置就是默认的
如果使用GUIStyle ,那么就是GUIStyle的

GUI.skin = null;

GUI自动布局

GUILayout.BeginHorizontal(); GUILayout.Button("1"); GUILayout.Button("2"); GUILayout.Button("3"); GUILayout.EndHorizontal(); GUILayout.BeginArea(new Rect(300,300,300,300)); GUILayout.EndArea();

GUILayout布局选项

控件的固定宽高

GUILayout.Width(300); GUILayout.Height(200);

控件的最小,最大高度

GUILayout.MinHeight(200); GUILayout.MaxHeight(200);

控件的宽度和高度拓展的禁止和允许

GUILayout.ExpandHeight(true); GUILayout.ExpandHeight(false);

tip [ExecuteAwalys]加入标识,可以在编译完成后就能自动运行

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 12:21:59

Linux平台设备驱动

Linux内核使用总线来处理设备,总线连接了CPU与这些设备。有些总线足够智能,并内嵌了可发现性逻辑以枚举连接到总线上的设备。在引导阶段的初期,Linux内核会请求这些总线提供它们所枚举的设备以及这些设备正常工作所需的资源(如中断…

作者头像 李华
网站建设 2026/10/13 13:26:21

初探 Mysql Docker

前言我在專案開發階段常使用 MySQL Docker,主要是好處,快速啟動、零安裝成本、版本切換,不污染本機系統(不喜歡本機裝一堆有的沒的,特別是有的只會用那麼一次)。而且如果在需要,任何時間、任何機器,都能還原…

作者头像 李华
网站建设 2026/10/15 19:33:04

大数据传输时代:如何选择高效可靠的数据传输工具?

在数据驱动决策的今天,大数据已成为企业核心资产。然而,随着数据量呈几何级数增长,海量数据的快速、安全、稳定迁移与同步,正成为众多企业数字化转型道路上的严峻挑战。传统的传输方式在TB甚至PB级的数据洪流面前,如同…

作者头像 李华
网站建设 2026/10/15 9:54:28

企业网盘私有化部署,构建安全高效的数据资产管理基石

在数字化转型浪潮中,企业数据资产的价值与日俱增,如何安全、高效地存储、管理与协作这些核心资产,成为每个组织必须面对的关键议题。近年来,越来越多的企业将目光投向网盘系统的私有化部署,这一模式正逐渐成为保障数据…

作者头像 李华
网站建设 2026/10/15 8:32:53

39、深入探究 Linux 中的睡眠与计时机制

深入探究 Linux 中的睡眠与计时机制 在 Linux 系统编程中,睡眠和计时是常见的操作,它们在很多场景下都发挥着重要作用。本文将详细介绍 Linux 中不同的睡眠和计时接口,包括它们的特点、使用方法以及适用场景。 1. 纳秒级睡眠:nanosleep() Linux 中, usleep() 函数已被…

作者头像 李华
网站建设 2026/10/15 21:36:02

31、Linux 动态内存管理全解析

Linux 动态内存管理全解析 1. 映射文件与内存管理接口概述 大多数地址空间包含少量映射文件,如程序可执行文件本身、C 语言及其他共享库和数据文件。可以查看 /proc/self/maps 或 pmap 程序的输出,了解进程中的映射文件示例。Linux 提供了一系列接口用于获取和释放内存…

作者头像 李华