Unity3d--屏幕适配
2016-06-14 17:20
471 查看
using UnityEngine; using System.Collections; public class CameraModify : MonoBehaviour { /* * 屏幕适配 */ /// <summary> /// 屏幕比例:宽度 /// </summary> public int screenRatioX = 16; /// <summary> /// 屏幕比例:高度 /// </summary> public int screenRatioY = 9; void Start () { //获取主摄像机 Camera ca = transform.GetComponent<Camera> (); //获取屏幕的宽度 float xScreen = Screen.width; //获取屏幕的高度 float yScreen = Screen.height; //设置的显示比例 与 设备的显示比例 差值 float proportion = (screenRatioX / screenRatioY) - (xScreen / yScreen); //当设置的比例值大于设备比例值 if (proportion > 0) { //计算新的屏幕高度 屏幕的宽度 / 屏幕的宽度比例 * 屏蔽高度的比例 float yNow = (xScreen / screenRatioX) * screenRatioY; //计算屏幕的高度变化比例 新的屏幕高度 / 初始的屏幕高度 float modifys = yNow / yScreen; //设置主摄影机的 Viewport Rect, x = 0, y = (1 - 高度变化比例) / 2, w = 1, h = 高度变化比例 ca.rect = new Rect(0.0f, (1 - modifys) / 2, 1.0f, modifys); } //当设置的比例值小于设备比例值 if (proportion < 0) { //计算新的屏幕宽度 屏幕的高度 / 屏幕的高度比例 * 屏幕宽度的比例 float xNow = (yScreen / screenRatioY) * screenRatioX; //计算屏幕的宽度变化比例 新的屏幕宽度 / 初始的屏幕宽度 float modifys = xNow / xScreen; //设置主摄影机的 Viewport Rect, x = (1 - 宽度变化比例) / 2, y = 0 , w = 宽度变化比例, h = 1 ca.rect = new Rect((1 - modifys) / 2, 0.0f, modifys, 1.0f); } } }
相关文章推荐
- Unity Shader学习5 —— Cg语言的基础
- Unity学习日常问题记录九-关于Lookat与模型坐标系的相关的问题以及父子物体的刚体
- 全面理解Unity动态加载和内存管理
- 在Unity中接入Xbox360手柄
- Windows系统Unity3D中的快捷键
- 关于Unity5.3UGUI图集的使用方法
- 欢迎使用CSDN-markdown编辑器
- unity调用系统相册无法横屏解决方法(ios)
- iPhone6s无法连接服务器(pomelo,unity3d)
- Unity3d 二维码功能(扫码及相册读取,适配ios与android)
- Unity3D游戏开发之“unity3D命令行参数”
- UNITY3D圆形算法
- 楼梯,梯度递增,计算代码-unity3D
- 【Unity3D实战】RPG黑暗之光:游戏分解及各系统的实现
- 高通AR增强现实Unity3D
- 长年承接AR图像识别项目,关于高速UnityARCam多图问题技术整理
- 【Unity3D】ShaderLab实战
- Unity 获取UI中不同容器里的相对坐标
- Unity3d脚本改变GameObject的Material(一)
- unity的#pragma strict,#pragma downcast等指令含义和作用