Unity3D学习笔记01:GUI自适应屏幕分辨率

       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更为方便,而且带有屏幕自适应功能,这个在以后的学习中再进行讨论。

      最后附上项目工程的下载地址:点此下载

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值