您的位置:首页 > 移动开发 > Unity3D

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);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: