Unity3D学习笔记01:GUI自适应屏幕分辨率
来源:互联网 发布:plc程序c语言 编辑:程序博客网 时间:2024/05/25 23:56
GUI通常情况下用来制作游戏的菜单界面和游戏运行时的工具栏等,不同型号的手机的屏幕分辨率往往不同,这样我们就会遇到自适应屏幕这个问题,下面我们就来说一下解决办法。
首先我们来看谈一下实现原理,我们假设一个标准屏幕分辨率,例如1024 X 768,我们以此来确定当前GUI空间控件的位置和大小,控件在1024 X 768分辨率下的位置和大小乘以屏幕的缩放系数即得控件在当前屏幕下的位置和大小。缩放系数即为当前屏幕宽高除以标准屏幕宽高1024和768.
好了,让我们用一个例子实现GUI适应屏幕分辨率,我们在屏幕的左上角和右下角定义两个菜单项。
using UnityEngine;using System.Collections;public class Test : MonoBehaviour { //定义菜单项贴图 public Texture start; public Texture exit; //定义标准屏幕分辨率 public float m_fScreenWidth = 1024; public float m_fScreenHeight = 768; //定义缩放系数 public float m_fScaleWidth; public float m_fScaleHeight;void Start () { //计算缩放系数 m_fScaleWidth = (float)Screen.width / m_fScreenWidth; m_fScaleHeight = (float)Screen.height / m_fScreenHeight;}void OnGUI() { //绘制菜单 GUI.Button(new Rect(10 * m_fScaleWidth, 10 * m_fScaleHeight, 200 * m_fScaleWidth, 50 * m_fScaleHeight), start); GUI.Button(new Rect(814 * m_fScaleWidth,708 * m_fScaleHeight, 200 * m_fScaleWidth, 50 * m_fScaleHeight), exit); }}
运行结果如下图所示:
分辨率640 X 480:
分辨率1024 X 600:
好了,简单的自适应屏幕就实现了,请大家导出.exe文件后查看效果。相信大家还会有更好的办法,其实GUI在以后的实际开发中基本上不会使用,而是使用相关的插件,如NGUI等,NGUI更为方便,而且带有屏幕自适应功能,这个在以后的学习中再进行讨论。
最后附上项目工程的下载地址:点此下载
- Unity3D学习笔记01:GUI自适应屏幕分辨率
- Unity3D NGUI自适应屏幕分辨率
- Unity3D NGUI自适应屏幕分辨率
- Unity3D NGUI自适应屏幕分辨率
- 【Unity3d】使GUI适应屏幕分辨率
- Unity3D NGUI自适应屏幕分辨率 最新
- Unity3d gui自适应屏幕
- Unity3d gui自适应屏幕
- Unity3d gui自适应屏幕
- Unity--GUI 的旋转和自适应屏幕分辨率
- Unity GUI自适应屏幕分辨率的方法
- cocos2d-x 菜鸟学习笔记二(自适应屏幕分辨率)
- [Unity3D插件]NGUI之UIRoot屏幕分辨率自适应
- [Unity3D插件]NGUI之UIRoot屏幕分辨率自适应
- [Unity3D插件]NGUI之UIRoot屏幕分辨率自适应
- Unity3D开发 NGUI之UIRoot屏幕分辨率自适应
- Unity3D 学习笔记(二) GUI
- Unity3D学习笔记(十四)GUI
- poj 1011 Sticks
- hdu 4569 Special equations ( 必要条件缩小范围后暴力)
- Box2D 內存管理 - 小型對象分配器(SOA)的實現
- 关于用栈链表来实现中序表达式的一个小程序 《数据结构》
- windows socket select
- Unity3D学习笔记01:GUI自适应屏幕分辨率
- dsPIC33F之Cycle-by-Cycle fault operation Comparator with PWM
- $(srctree) is not clean, please run 'make mrproper'
- make命令的使用及参数解析
- My Summary
- hdu 2095(1.2.5)
- Box2d源码学习<二>内存管理之SOA的实现
- Java 理论与实践: 非阻塞算法简介
- vim文件间复制粘贴完美方案