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元素的界面坐标系统总结(有公式)的更多相关文章

  1. 黑马程序员:Java基础总结----GUI图形化界面

    黑马程序员:Java基础总结 GUI图形化界面   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流!   GUI(Graphical User Interface)图形化界 ...

  2. Unity3D笔记 GUI 一

    要实现的功能: 1.个性化Windows界面 2.减少个性化的背景图片尺寸 3.个性化样式ExitButton和TabButton 4.实现三个选项卡窗口 一.个性化Windows界面 1.1.创建一 ...

  3. [原]Unity3D深入浅出 - GUI控件

    Unity的GUI类提供了丰富的界面控件,通过组合这些控件,完成和用户交互的界面. Lable:绘制文本和图片 Box:绘制一个图形框 Button:绘制一个响应单击事件的按钮 RepeatButto ...

  4. python3.6 +tkinter GUI编程 实现界面化的文本处理工具

    更新: 2017.07.17 补充滚动条.win批处理拉起py 2017.08.13 新增自定义图标 --------原创      blogs:    http://www.cnblogs.com/ ...

  5. Unity3D笔记 GUI 三、实现选项卡二窗口

    实现目标: 1.使用个性化Box控件 2.个性化Lable控件 3.添加纵向滚动条 4.新建SelectedItem样式 一.最终效果: 二.主要代码 using UnityEngine; using ...

  6. Unity3D笔记 GUI 二 、实现选项卡一窗口

    实现目标: 1.个性化Box控件 2.新建TextAmount样式 3.新建TextItem样式 一.个性化Windows界面 设置GUI Skin 1.2 部分代码 Rect stateBox = ...

  7. tkinter的GUI设计:界面与逻辑分离(一)-- 初次见面

    PyQt实现界面与逻辑分离的设计很是方便,详情可以见我的第一篇博文. 不过本文将使用python的标准库 tkinter,来实现界面与逻辑分离的GUI 设计. 我们来设计一个很简单的程序: 目的:长度 ...

  8. python gui之tkinter界面设计pythonic设计

    ui的设计,控件id的记录是一件比较繁琐的事情. 此外,赋值和读取数据也比较繁琐,非常不pythonic. 有没有神马办法优雅一点呢?life is short. 鉴于控件有name属性,通过dir( ...

  9. unity3d NGUI多场景共用界面制作

    1创建单独编辑UI的unity场景 UIScene.unity 用来做UI面界 ,创建Resources文件存放UI界面的prefab,代码里动态load资源仅仅能从Resources目录载入 2创建 ...

随机推荐

  1. 【荐1】Total Commander 7.57 个人使用设置 及 常用快捷键 备忘

    Total Commander 7.57a  下载地址:http://www.baidu.com/s?wd=total commander 7.57 破解版 软件整体预览图:(注意,下面的版本我用的是 ...

  2. XML格式示例 与 XML操作(读取)类封装

    header('Content-Type: text/xml'); <?xml version="1.0" encoding="utf-8" standa ...

  3. Linux下安装和配置JDK与Tomcat(升级版)

    在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...

  4. 网址前面的icon

    shortcut icon和icon代码之间究竟有何区别呢.下面介绍一下   语句一:<link rel="shortcut icon" href="favicon ...

  5. python之路六

    面向对象 引言 提到面向对象,总是离不开几个重要的术语:多态(Polymorphism),继承(Inheritance)和封装(Encapsulation).Python也是一种支持OOP的动态语言, ...

  6. ACM/ICPC 之 电力网络-EK算法(POJ1459)

    按照电站发电(从源点到电站),消费者消费(从消费者到汇点)的想法构建网络,以下是EK解法 //网络流EK算法 //Time:922Ms memory:224K #include<iostream ...

  7. NEFU 560 半数集

    题目链接 递推就行,把a[0]设为1很巧妙. #include <cstdio> #include <iostream> using namespace std; ]={}; ...

  8. 如何在WIN2008或WIN2012 64位系统安装32位SQL2000

    如何在WIN2008或WIN2012 64位系统安装32位SQL2000 在日常服务器,云服务器或VPS中,因尔特网络工程师遇到部分使用了WIN2008 或WN2012 64位系统的用户需要安装SQL ...

  9. Received an invalid response. Origin 'null' is therefore not allowed access

    Received an invalid response. Origin 'null' is therefore not allowed access. 今天在做二级联动,使用ajax请求xml数据, ...

  10. 利用python的双向队列(Deque)数据结构实现回文检测的算法

    #!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Da ...