当前位置: 首页 > 编程日记 > 正文

Unity3D笔记 GUI 一

要实现的功能:

1、个性化Windows界面
  2、减少个性化的背景图片尺寸
  3、个性化样式ExitButton和TabButton
  4、实现三个选项卡窗口

一、个性化Windows界面

1.1、创建一个空的GameObject、在Project中新建GUI Skin 用于绘制Windows图片

1.2 GUI Skin设置

1.3效果 按M键盘 弹出Windows窗口

二、减少个性化的背景图片尺寸

因GUISkin中图片我们用的是大图片这个在游戏中不但占资源对性能也有影响,和WebForm中相似的是都可以通过样式来使用小图片来完成大图片的功能。Unity3D也不例外:

效果很不好,设置下即可,按下面图片的尺寸

OK

三、个性化样式ExitButton和TabButton

3.1

3.2、效果

3.3、TabButton

四、实现三个选项卡窗口

4.1、效果出来了 不过不美观(代码见下有具体注释)

4.2、设置

4.3、再看看效果

五、最终效果

代码:

using UnityEngine;
using System.Collections;public class myTest : MonoBehaviour
{/// <summary>/// 是否打开窗口/// </summary>bool isOpenMenu = false;/// <summary>/// 窗体的大小和位置【矩形】/// </summary>Rect myWindow = new Rect(10, 10, 640, 480);/// <summary>/// GUI Skin/// </summary>public GUISkin customSkin;/// <summary>/// 关闭按钮/// </summary>Rect closeButton = new Rect(598, 8, 26, 22);/// <summary>/// 用于工具栏在屏幕上的矩形位置/// </summary>Rect tabButton = new Rect(35, 15, 490, 40);/// <summary>/// 选项卡索引号/// </summary>int toolsCount = 0;/// <summary>/// 显示在工具栏按钮上的字符串数组/// </summary>string[] toolsName = { "选项卡1", "选项卡2", "选项卡3" };/// <summary>/// 选项卡中的图片/// </summary>public Texture img;Rect imgRect = new Rect(19, 35, 225, 441);// Use this for initializationvoid Start(){}// Update is called once per framevoid Update(){if (Input.GetKey(KeyCode.M))//当通过名称指定的按键被用户按住时返回true
        {isOpenMenu = true;}}void OnGUI(){GUI.skin = customSkin;if (isOpenMenu){int windowId = 0;myWindow = GUI.Window(windowId, myWindow, WindowFunction, "Hello Window");#region Mathf.Clamp 限制// 限制value的值在min和max之间, 如果value小于min,返回min。 如果value大于max,返回max,否则返回valuemyWindow.x = Mathf.Clamp(myWindow.x, 0, Screen.width - myWindow.width);// [klæmp] vt.& vi. 夹紧,夹住;锁住;把(砖等)堆高myWindow.y = Mathf.Clamp(myWindow.y, 0, Screen.height - myWindow.height);#endregion}}void WindowFunction(int windowId){//begin 关闭按钮if (GUI.Button(closeButton, "", GUI.skin.GetStyle("closeButton"))){isOpenMenu = false;//单击关闭按钮:窗口菜单关闭
        }//end//beign 选项卡//返回int类型,被选择按钮的索引号toolsCount = GUI.Toolbar(tabButton, toolsCount, toolsName, GUI.skin.GetStyle("tabButton"));//工具栏//end//begin 选项卡图片
        GUI.DrawTexture(imgRect, img);//endGUI.DragWindow();//拖动窗口 
    }}

相关文章:

gdb相关(栈和寄存器)

GDB的常用调试命令大家可以查阅gdb手册就可以快速的上手了&#xff0c;在这儿就不给大家分享了&#xff0c;需要的可以到GDB的官网去下载手册。这里重点分享下GDB调试中的一些寄存器和栈的相关知识用于解决下列gdb调试时的问题&#xff1a; 优化的代码在printf或其它glibc函数…

bzoj1688[Usaco2005 Open]Disease Manangement 疾病管理*

bzoj1688[Usaco2005 Open]Disease Manangement 疾病管理 题意&#xff1a; n头牛&#xff0c;d种疾病&#xff0c;每头牛都患一些疾病&#xff0c;现在要求选出最多的牛&#xff0c;使这些牛患病的种类数不超过k。n≤1000&#xff0c;d≤15 题解&#xff1a; 状压dp。f[i][S]表…

【数据结构】二叉树的应用。

1、分别采用递归和非递归的方式编写两个函数&#xff0c;求一棵给定二叉树中叶子节点的个数 2、返回一棵给定二叉树在中序遍历下的最后一个结点 3、假设二叉树采用链式方式存储&#xff0c;root为其根节点&#xff0c;p和q分别指向二叉树中任意两个结点&#xff0c;编写一个函…

我为我Windows Home Server 预热

这两天在下载Windows Home Server,所以找一些资料来看. 微软宣布Windows Home Server&#xff08;WHS&#xff09;正式推出&#xff0c;WHS是一个帮助家庭保护&#xff0c;连接并共享他们的数字媒体与文档的新解决方案。用户可以从各大在线商店进行预订&#xff0c;之后会在本月…

c 宏定义用法#define

转自&#xff1a;https://blog.csdn.net/boring_wednesday/article/details/78756696 宏定义 语法 #define name Stuff #define PI 3.14 //定义一个M&#xff0c;值为3.14 #define DO_FOREVER for(;;) //定义一个死循环 #define REG register //定义REG来作为register的别…

Linux学习笔记—— 权限及权限管理

权限及权限管理权限管理&#xff1a;r&#xff1a;w&#xff1a;x&#xff1a;三类用户&#xff1a;u&#xff1a;属主g&#xff1a;属组o&#xff1a;其他用户chown&#xff1a;改变文件属主&#xff08;只有管理员可以使用此命令&#xff09;# chown USERNAME file,...-R&…

【ACM】签到题

#include <stdio.h> int main () {int T,a,b,c,x,ji,ya,e;scanf("%d",&T);while(T--){scanf("%d%d%d%d",&a,&b,&c,&x);ya(a*x)/(c-b);e(a*b*x)/(a*c-a*b);jiex;printf("%d %d %d\n",ji,ya,e);}return 0; }

图解eclipse+myeclipse完全绿色版制作过程

现在在Java开发中&#xff0c;使用的开发工具大部分都是Eclipse&#xff0c;并且和Eclipse关系紧密的要数MyEclipse了&#xff0c;但是 MyEclipse是一个EXE可执行程序&#xff0c;对于没有安装Eclipse与MyEclilpse的电脑来说&#xff0c;首先得先解压Eclipse&#xff0c;然后再…

linux proc/xx/maps文件分析

转载&#xff1a;https://blog.csdn.net/lijzheng/article/details/23618365 Proc/pid/maps显示进程映射了的内存区域和访问权限。对应内核中的操作集为proc_pid_maps_op&#xff0c;具体的导出函数为show_map。内核中进程的一段地址空间用一个vm_area_struct结构体表示&#…

【ACM】熊孩子的乐趣

题目链接&#xff1a;http://acm.nuc.edu.cn/OJ/contest/show/43/1000 【问题描述】 Alice跟Bob是学校里出了名的两个熊孩子&#xff0c;会在任何事情上争个高低&#xff0c;彼此都不服输。幼儿园的老师每次分糖果的时候看到这两个熊孩子也很头疼&#xff0c;两个人都想占便宜…

mysql insertOrUpdate 方法

为什么80%的码农都做不了架构师&#xff1f;>>> 自己对这个方法又有点小心得 分享下 https://my.oschina.net/hccake/blog/777225 mysql "ON DUPLICATE KEY UPDATE" 语法 如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE&#xff0c;并且插入行后会导…

软件破解工具整理收集

1.调试工具softice 2.调试工具Trw2000 3.反汇编工具Wdasm8.93 4.Hiew 5.Visual Basic程序调试工具Smartcheck 6.十六进制编辑器&#xff08;如&#xff1a;Ultraedit、WinHex、Hex Workshop 等&#xff09; 7.注册表监视工具RegShot、regmon或RegSnap 8.侦测文件类型工具…

Linux 下 UltraEdit 版本: 16.1.0.18 破解 30 天试用限制

rm -rfd ~/.idm/uex rm -rf ~/.idm/*.spl rm -rf /tmp/*.spl

【ACM】杭电OJ 2149

Public Sale 【问题描述】 虽然不想&#xff0c;但是现实总归是现实&#xff0c;Lele始终没有逃过退学的命运&#xff0c;因为他没有拿到奖学金。现在等待他的&#xff0c;就是像FarmJohn一样的农田生涯。 要种田得有田才行&#xff0c;Lele听说街上正在举行一场别开生面的拍…

PV UV IP

UV &#xff08;网站独立访客&#xff09; 编辑UV是unique visitor的简写&#xff0c;是指通过互联网访问、浏览这个网页的自然人。独立IP&#xff1a;是指独立用户/独立访客。指访问某个站点或点击某条新闻的不同IP地址的人数&#xff0c;在同一天的00:00-24:00内&#xff0c;…

VBA中级班课时3小结

本课内容&#xff1a;工作簿和工作表对象 主讲&#xff1a;rover18 学习时间&#xff1a;2010年11月 本节课将学习工作簿对象Workbooks、Workbook与工作表对象Worksheets、Worksheet。在我们了解了VBA的四大要素——对象、属性、方法和事件后&#xff0c;会发现VBA的程序是对对…

解决firefox ubuntu无法打开页面的问题

firefox备份用户配置信息 https://support.mozilla.org/zh-CN/kb/%E5%A4%87%E4%BB%BD%E4%BD%A0%E7%9A%84%E4%BF%A1%E6%81%AF 把xxxxxxxx.default 覆盖掉xxxxxxxx.default-release里面的内容

js构造函数式编程

1.函数式编程 //创建和初始化地图函数&#xff1a;function initMap(){createMap();//创建地图setMapEvent();//设置地图事件addMapControl();//向地图添加控件}//创建地图函数&#xff1a;function createMap(){var map new BMap.Map("dituContent");//在百度地图容…

【ACM】绝地求生

题目链接&#xff1a;http://acm.nuc.edu.cn/OJ/contest/show/43/1009 【问题描述】 zbt最近喜欢上了《绝地求生》&#xff08;pubg&#xff09;游戏&#xff0c;pubg这个游戏有一种跑毒机制&#xff0c;每次会产生一个圆形的安全区,玩家需要从他的当前位置在一定时间内进入安…

【oracle】dblink创建

目的&#xff1a;oracle中跨数据库查询 两台数据库服务器db_A(本地)和db_B(远程192.168.1.100)&#xff0c;db_A下用户user_a 需要访问到db_B下user_b的数据解决&#xff1a;查询得知使用dblink(即database link 数据库链)实现过程&#xff1a;1、确定用户user_a有没有创建 db…

ASan(Linux),gcc4.8以上版本自带的内存检查工具

转自&#xff1a;http://shafeng.github.io/2017/05/10/asan/ 最近线上的程序总是莫名其妙崩溃,因为我们的项目使用了分布负载的机制,对于玩家的影响其实很小,但是我肯定是忍不了的…程序崩溃的core文件里面完全找不到问题所在,初步分析应该是野指针导致,仔细分析程序之后并没有…

详解使用DockerHub官方的mysql镜像生成容器

为什么80%的码农都做不了架构师&#xff1f;>>> 写在前面&#xff1a;看到网上关于利用DockerHub官方的mysql镜像生成容器此类的文档比较少&#xff0c;故结合自身实践分享给大家&#xff0c;还望多多指教。 我的需求&#xff1a;利用docker 镜像快速建立一个mysql…

【ACM】奇怪的回文数

题目链接&#xff1a;http://acm.nuc.edu.cn/OJ/contest/show/43/1008 【问题描述】 “回文”是指正读反读都能读通的句子&#xff0c;它是古今中外都有的一种修辞方式和文字游戏&#xff0c;如“我为人人&#xff0c;人人为我”等。 在数学中也有这样一类数字有这样的特征…

java I/O之装饰者模式

装饰者&#xff1a; Decorator模式&#xff08;别名Wrapper&#xff09;&#xff1a;动态将职责附加到对象上&#xff0c;若要扩展功能&#xff0c;装饰者提供了比继承更具弹性的代替方案。 装饰者模式意图&#xff1a; 动态的给一个对象添加额外的职责。Decorator比生产子类灵…

ubuntu下wireshark添加root权限

wireshark要监控eth0&#xff0c;但是必须要root权限才行。但是&#xff0c;直接用root运行程序是相当危险&#xff0c;也是非常不方便的。 解决方法如下&#xff1a; 1.添加wireshark用户组sudo groupadd wireshark 2.将dumpcap更改为wireshark用户组sudo chgrp wireshark /…

Oracle导出空表解决办法

在oracle 11g 中&#xff0c;发现传统的exp不能导出空的表 oracle 11g 新增了一个参数&#xff1a;deferred_segment_creation&#xff0c;含义是段延迟创建&#xff0c;默认是true。具体是什么意思呢&#xff1f; 如果这个参数设置为true&#xff0c;你新建了一个表T1&#xf…

【ACM】图像分类

题目链接&#xff1a;http://acm.nuc.edu.cn/OJ/contest/show/43/1003 【问题描述】 现在&#xff0c; 我们需要你来解决一项图像分类任务。 首先我们需要介绍下简单图像的数据存储形式&#xff0c;你可以粗略的认为图像在数字意义就是一个二维矩阵&#xff08;我们这里不考虑…

【译】如何精确判断最终用户响应时间过长的原因?

译者&#xff1a;原始文章有点性能测试工具软文的感觉&#xff0c;毕竟文章来源于某工具官方博客。高手请略过。 对于我这种新手&#xff0c;此文还是给我带来一些惊喜&#xff0c;从上到下地&#xff0c;从表象到根源地&#xff0c;定位他们遇到性能问题-响应时间过长-的根本原…

javascript中重要概念-闭包-深入理解

在上次的分享中javascript--函数参数与闭包--详解&#xff0c;对闭包的解释不够深入。本人经过一段时间的学习&#xff0c;对闭包的概念又有了新的理解。于是便把学习的过程整理成文章&#xff0c;一是为了加深自己闭包的理解&#xff0c;二是给读者提供学习的途径&#xff0c;…

ssl握手过程和ca证书验证

转载&#xff1a;https://www.cnblogs.com/cposture/p/9029014.html SSL 认证 可以将 SSL 服务器与客户端之间的通信配置为使用单向或双向 SSL 认证。 单向 SSL 认证一般是客户端利用服务器传过来的信息验证服务器的合法性&#xff0c;服务器的合法性包括&#xff1a;证书是…