Unity3D之OnGUI知识总结
相对位置参考 http://blog.csdn.net/sunny__chen/article/details/51323265
自适应屏幕收缩 http://www.360doc.com/content/14/0124/09/12282510_347501909.shtml
一、Label
#region 四个角定位
GUI.Label(new Rect(30, 10, 100, 200), "zzzzzz");
GUI.Label(new Rect(30, Screen.height - 50, 100, 200), "zzzzzz");
GUI.Label(new Rect(Screen.width - 50, Screen.height - 50, 100, 200), "zzzzzz");
GUI.Label(new Rect(Screen.width - 50, 10, 100, 200), "zzzzzz");
#endregion
二、Button
GUI.Label(new Rect(30, 30, 100, 200), "Button");
GUI.Button(new Rect(30, 50, 50, 50), "这个是一个按钮");
GUI.Button(new Rect(90, 50, 50, 50), text);
//带图片带文字的按钮
GUIContent guic = new GUIContent("按钮", text);
GUI.Button(new Rect(150, 50, 50, 50), guic);
//按键从上往下排 自动排序
if (GUILayout.Button("1"))
Debug.Log("1");
if (GUILayout.Button("2"))
Debug.Log("2");
if (GUILayout.Button("3"))
Debug.Log("3");
if (GUILayout.Button("4"))
Debug.Log("4");
if (GUILayout.Button("5"))
Debug.Log("5");
if (GUILayout.Button("6"))
Debug.Log("6");
if (GUILayout.Button("7"))
Debug.Log("7");
if (GUILayout.Button("8"))
Debug.Log("8");
三、Toggle控件
GUI.Label(new Rect(30, 100, 100, 200), "Toggle");
toggle1 = GUI.Toggle(new Rect(30, 120, 100, 30), toggle1, "Toggle");
toggle2 = GUI.Toggle(new Rect(30, 150, 100, 30), toggle2, text);
四、滑动条
GUI.Label(new Rect(30, 180, 100, 200), "滑动条");
hSliderValue = GUI.HorizontalSlider(new Rect(30, 200, 100, 30), hSliderValue, 0, 10);
Show("水平滑动条:" + hSliderValue);
vSliderVaule = GUI.VerticalSlider(new Rect(0, 200, 30, 100), vSliderVaule, 0, 10);
五、Toolbar
toolbarInt = GUI.Toolbar(new Rect(30, 250, 250, 30), toolbarInt, new string[] { "功能一", "功能二", "功能
三" });
if (lastValue != toolbarInt)
{
if (toolbarInt == 0)
Debug.Log(1111);
if (toolbarInt == 1)
Debug.Log(2222);
if (toolbarInt == 2)
Debug.Log(3333);
lastValue = toolbarInt;
}
六、Scrollbar
GUI.Label(new Rect(30, 300, 100, 200), "Scrollbar");
hSbarValue = GUI.HorizontalScrollbar(new Rect(30, 320, 100, 30), hSbarValue, 1.0f, 0.0f, 10.0f);
vSbarValue = GUI.VerticalScrollbar(new Rect(0, 320, 30, 100), vSbarValue, 1.0f, 0.0f, 10.0f);
七、菜单
GUI.Box(new Rect(30, 350, 100, 100), "Menu");
if (GUI.Button(new Rect(40, 370, 80, 20), "1"))
八、TextField
useNmae = GUI.TextField(new Rect(Screen.width / 2, Screen.height / 2 - 200, 150, 30), useNmae);
//*****密码字符的掩码字符
passWord = GUI.PasswordField(new Rect(Screen.width / 2, Screen.height / 2 - 150, 150, 30), passWord, '*', 25);
if (GUI.Button(new Rect(Screen.width / 2, Screen.height / 2 - 50, 150, 30), "登录"))
{
isBntLogin = true;
Debug.Log(isBntLogin+ "isBntLogin");
if (useNmae.Equals("admin") && passWord.Equals("123"))
{
isSuccess = true;
GUI.Label(new Rect(500, 350, 150, 30), "登录成功");
}
else
{
isSuccess = false;
GUI.Label(new Rect(500, 350, 150, 30), "登录失败");
}
}
if (isBntLogin)
{
if (isSuccess)
GUI.Label(new Rect(Screen.width / 2, Screen.height / 2 + 50, 150, 30), "登录成功");
else
{
GUI.Label(new Rect(Screen.width / 2, Screen.height / 2 + 50, 150, 30), "登录失败");
}
}
=====================================================================================
要考虑屏幕收缩的话,说实话,这个ongui还是太麻烦了
还不如去动态创建ugui呢,自己写个工具就行
参考 http://blog.csdn.net/jwxkk/article/details/52452513
Unity3D之OnGUI知识总结的更多相关文章
- Unity3D光照前置知识——Rendering Paths(渲染路径)及LightMode(光照模式)译解
简述 Unity supports different Rendering Paths. You should choose which one you use depending on your g ...
- Unity3D游戏开发——显示物品的仓库UI
访问仓库物品列表的方法 为了在UI中显示物品列表,我们需要给InventoryManager添加两个能够访问它的公有方法: 代码: ··· public List<string> GetI ...
- Unity3D游戏开发初探—4.开发一个“疯狂击箱子”游戏
一.预备知识—对象的”生“与”死“ (1)如何在游戏脚本程序中创建对象而不是一开始就创建好对象?->使用GameObject的静态方法:CreatePrimitive() 以上一篇的博文中的“指 ...
- Unity3D 装备系统学习Inventory Pro 2.1.2 总结
前言 写在最前面,本文未必适合纯新手,但有一些C#开发经验的还是可以看懂的,虽然本人也是一位Unity3D新人,但是本文只是自己在学习Inventory Pro的学习总结,而不是教程,本人觉得要读懂理 ...
- Unity3d UGUI 通用Confirm确认对话框实现(Inventory Pro学习总结)
背景 曾几何时,在Winform中,使用MessageBox对话框是如此happy,后来还有人封装了可以选择各种图标和带隐藏详情的MessageBox,现在Unity3d UGui就没有了这样的好事情 ...
- 在知乎回答的一个问题:C#初学者以后往WP开发走,还是往unity3d走?哪个更有前景呢
问题原文:我是一个C#初学者,想问个问题,我以后是该往WP开发方向走呢还是学习Unity3D往游戏开发,哪个更有前景呢,个人感觉未来几年iOS,WP,Java会三足鼎立,WP现在有潜力,但是U3D现在 ...
- (转)【风宇冲】Unity3D教程宝典之AssetBundles:第一讲
自:http://blog.sina.com.cn/s/blog_471132920101gz8z.html 原创文章如需转载请注明:转载自风宇冲Unity3D教程学院 ...
- Unity3D开发七惑
使用Unity3D开发也有大半年了,心中存惑如下,愿与各位开发者一起探讨: (1) 远离普适编程之惑 随着游戏引擎的不断发展,游戏程序员的开发层级也越来越高,以unity3d尤为突出.如果是进行We ...
- Unity3D学习笔记1——绘制一个三角形
目录 1. 绪论 2. 概述 3. 详论 3.1. 准备 3.2. 实现 3.3. 解析 3.3.1. 场景树对象 3.3.2. 绘制方法 4. 结果 1. 绪论 最近想学习一下Unity3d,无奈发 ...
随机推荐
- mysql索引及多表查询
注意where,group by ,having,order by, limit 等的顺序. 主表是被绑定的表,子表是添加了外键了的表,注意,在创建表的时候可以添加外键,也可以创建完了以后添加外键. ...
- HackThirteen 在onCreate()方法中获取View的宽度和高度
1.概要: Android源代码中很多模块都使用了post()方法,深入理解框架曾运行机制对于避开类似于本例中的小陷阱是很重要的 2.问题提出: 如果开发一些依赖于UI控件的宽和高的功 ...
- C# Socket通信改进记录
1. Socket 使用原始Socket,Send和Recv方法 进行发送和消息获取.(另起后台线程 不停获取和发送) public void RecvMsg() { //receive messag ...
- 如何较为方便的在GMap.Net中实现车辆运行轨迹
一.简单的思路 要实现车辆运行轨迹,我们可能需要一个定时触发的机制用来更新Marker的位置,除了位置移动,我们可能还需要动态改变车辆的方向,如下图: 首先,位置移动是最简单的,关键是方向的动态改变如 ...
- day08.4-samba共享网盘服务
1. 安装软件:yum install samba -y 2. 新建共享目录物理路径:mkdir /zizaijiapu 修改配置文件:vim /etc/samba/smb.con ...
- 洛谷P2765 魔术球问题(最大流)
传送门 %%%KSkun大佬 话说明明是网络流……这题竟然还有打表找规律和纯贪心AC的……都是神犇啊…… 来说一下如何建图.首先把每一个点拆成$X_i$和$Y_i$,然后$S$向$X_i$连一条容量为 ...
- 4.SVM
- SDUT OJ 数据结构实验之链表五:单链表的拆分
数据结构实验之链表五:单链表的拆分 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descr ...
- django bug 与陷阱
环境:ubuntu,python3.4 1.QueryDict 陷阱 :以下语句语句是取每行的头元素,其中line应该是一个列表.问题是,line在实际运行中已经不是列表,而变成了列表中的头元素. 错 ...
- 在文件夹快速启动cmd或powershell
进入指定目录下的几种方法:一般方法 使用win+R的组合键进入运行窗口运行窗口输入cmd进入命令行,使用 ”cd 文件路径“进入指定的文件夹下.cd 命令的基本操作如下: 任意目录下跳转至当前驱动器的 ...