unity3d的GUI元素的界面坐标系统总结(有公式)
GUIText 和GUITexture
1、GUIText
锚点(Anchor)的概念我就不介绍了。像NGUI和tookit2d还有 Cocos2d中都有这个重要的概念,对于图片我们可以认为是图片自身的原点。
而GUIText 对象本身也是支持设置锚点的,但是只有9个选项。用于设置显示的Text文本的整体的自身坐标原点。
任何对象都会有Transform组件,而在GUIText对象中的有用的就是Position。 这个Position代表了什么呢?
一个重要的公式:
整个Text文本的的整体的自身坐标原点在窗口屏幕上的位置:
pos(x,y) = (Position.x*Screen.width + PixelOffset.x, Position.y*Screen.height + PixelOffset.y)
这个Position它代表了整个Text文本的的整体的自身坐标原点的位置的基础,Position.x是整个窗口屏幕的宽度的倍数,Position.y是整个窗口屏幕的高度的倍数。
注意屏幕的坐标原点是左下角为(0,0)。
2、GUITexture
这个是没有锚点的,图片的自身原点就是在左下角为(0,0,)。
一个重要的公式:
整个GUITexture图片的整体的自身坐标原点在窗口屏幕上的位置:
pos(x,y) = (Position.x*Screen.width +PixelInset.x, Position.y*Screen.height +PixelInset.y)
这个Position它代表了整个Text文本的的整体的自身坐标原点的位置的基础,Position.x是整个窗口屏幕的宽度的倍数,Position.y是整个窗口屏幕的高度的倍数。
最后给大家做这个逻辑: 如下的一个游戏结束的效果。
对象的逻辑是这样的,GameOver是一个空对象。
BG_End 是游戏结束的大背景图
下面是三个文本GUIText
和还有GUITexture ”本次获得积分“图片。
和一个按钮形状的GUITexture图片
为了让整个的逻辑不变形,就是让前面的各个小的UI元素做游戏结束的大背景图的子对象。 我们让子对象和父对象都是相对于Transform.Position.x,y的值(要注意), 可能认为我设置子对象的Transform.position.x.y都是 0,0,。注意子对象从父对象那继承了。对子对象一样。这样我们就这是子对象的PixelInset.x,y 调整到合适的位置。
我们记录按钮假图片的这个值。如上图:我们编写代码显示真正的按钮时要用到。
下面编写代码来显示这个按钮:
voidOnGUI() //显示按钮 //
{
GUI.skin= myGUI;
if(GUI.Button(newRect(Screen.width*0.5f-26.3f,Screen.height*0.5f+178.71f-67f,61f,67f),"",GUI.skin.GetStyle("ContinueButton")))
{
Application.LoadLevel("mainMenu");
}
}
这里要注意一个主要的内容是“绘制GUI界面的坐标系以屏幕的左上角为(0,0)点”
Button的位置公式:
(Screen.width*(子Position.x+父Position.x)+子PixelInset.x的原值,Screen.height*(子Position.y+父Position.y)+ 子PixelInset.y的绝对值值-子PixelInset.h)
大小游戏中一般就是美工提供的原图大小。
unity3d的GUI元素的界面坐标系统总结(有公式)的更多相关文章
- 黑马程序员:Java基础总结----GUI图形化界面
黑马程序员:Java基础总结 GUI图形化界面 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! GUI(Graphical User Interface)图形化界 ...
- Unity3D笔记 GUI 一
要实现的功能: 1.个性化Windows界面 2.减少个性化的背景图片尺寸 3.个性化样式ExitButton和TabButton 4.实现三个选项卡窗口 一.个性化Windows界面 1.1.创建一 ...
- [原]Unity3D深入浅出 - GUI控件
Unity的GUI类提供了丰富的界面控件,通过组合这些控件,完成和用户交互的界面. Lable:绘制文本和图片 Box:绘制一个图形框 Button:绘制一个响应单击事件的按钮 RepeatButto ...
- python3.6 +tkinter GUI编程 实现界面化的文本处理工具
更新: 2017.07.17 补充滚动条.win批处理拉起py 2017.08.13 新增自定义图标 --------原创 blogs: http://www.cnblogs.com/ ...
- Unity3D笔记 GUI 三、实现选项卡二窗口
实现目标: 1.使用个性化Box控件 2.个性化Lable控件 3.添加纵向滚动条 4.新建SelectedItem样式 一.最终效果: 二.主要代码 using UnityEngine; using ...
- Unity3D笔记 GUI 二 、实现选项卡一窗口
实现目标: 1.个性化Box控件 2.新建TextAmount样式 3.新建TextItem样式 一.个性化Windows界面 设置GUI Skin 1.2 部分代码 Rect stateBox = ...
- tkinter的GUI设计:界面与逻辑分离(一)-- 初次见面
PyQt实现界面与逻辑分离的设计很是方便,详情可以见我的第一篇博文. 不过本文将使用python的标准库 tkinter,来实现界面与逻辑分离的GUI 设计. 我们来设计一个很简单的程序: 目的:长度 ...
- python gui之tkinter界面设计pythonic设计
ui的设计,控件id的记录是一件比较繁琐的事情. 此外,赋值和读取数据也比较繁琐,非常不pythonic. 有没有神马办法优雅一点呢?life is short. 鉴于控件有name属性,通过dir( ...
- unity3d NGUI多场景共用界面制作
1创建单独编辑UI的unity场景 UIScene.unity 用来做UI面界 ,创建Resources文件存放UI界面的prefab,代码里动态load资源仅仅能从Resources目录载入 2创建 ...
随机推荐
- 【经验】在CSS中定义超链接样式a:link、a:visited、a:hover、a:active的顺序
以前用CSS一直没有遇到过这个问题,在最近给一个本科同学做的项目里面.出现一些问题,搜索引擎查了一些网站和资料,发现很多人问到这个问题,给出的结果我试了试,大部分都不正确. 给出我试的顺序,可能会对大 ...
- Java poi读取,写入Excel,处理row和cell可能为空的情况
首先需要导入包 import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.NP ...
- Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:]
今天遇到了Assertion failure in -[UITableView _configureCellForDisplay:forIndexPath:]这个错误,一直也没有百度,不料想却弄了一个 ...
- c语言中->(间接成员运算符)的含义
写于2016年12月12日. "->"称为间接成员运算符. 总体注解:这个运算符与指向结构(sturct)或联合(union)的指针一起使用,用来指明结构或联合的的成员.假设 ...
- sql server 对象资源管理器(二)
SQL会缓存大量的数据页面,他还会缓存很多其他信息,包括存储过程的执行计划 ,特定用户的安全上下文等 如果这些信息没有在数据库中缓存,SQL都要重新计算一遍,花额外的时间,所以SQLSERVER对内存 ...
- ASP.NET MVC中的错误处理
ASP.NET MVC中的错误的错误处理跨越了两个主要领域:程序异常和路由异常的处理.前者是关于在控制器和视图中捕获错误的;而后者更多是有关重定向和HTTP错误的. 1.在WebConfig中把过滤器 ...
- Linux网络管理1---(Linux配置IP地址,ifconfig、配置文件)
1.Linux配置IP 地址 ifconfig命令临时配置IP 地址 ifconfig命令,最常用的功能是查看本机的网络的配置状态(当然也可以配置网络,不过是暂时性的),直接输入ifconfig命令就 ...
- [BI项目记]-配置Sharepoint2013支持文档版本管理笔记
做开发或者做方案,写文档是很重要的一个工作,我们经常需要知道文档被修改的次数,谁在什么时间修改的文档,以及在某一个版本中,都修改了哪些内容,以及不同版本的文档之间有什么差别. 如何对文档进行版本管理, ...
- initrd image比lvm.conf文件舊導致RHCS切換服務unmount failed,reboot
在RHCS服務切換的時候,unmount盤的時候,發現會failed,並且直接導致reboot. 在message里看到這樣一段 [lvm] * initrd image needs to be ne ...
- 198个经典C#WinForm实例源码(超赞) 里面的例子 .sln 目录
\-窗体技巧\QQ窗体\QQFrm.sln; \-窗体技巧\仿XP系统的任务栏菜单\仿XP系统的任务栏菜单.sln; \-窗体技巧\向窗体中拖放图片并显示\向窗体中拖放图片并显示.sln; \-窗体技 ...