以下内容摘录自《unity游戏案例开发大全》
using UnityEngine;
using System.Collections;
public class Menu : MonoBehaviour
{
public static float desiginWidth;//屏幕宽和高
public static float desiginHeight;
/// <summary>
/// 获取GUI自适应矩阵
/// </summary>
/// <returns></returns>
public static Matrix4x4 getMatrix()
{
//获取单位矩阵
Matrix4x4 guiMatri4x4 = Matrix4x4.identity;
//计算位移距离
float lux = (Screen.width - desiginWidth * Screen.height / desiginHeight) / 2.0f;
//设置GUI矩阵
guiMatri4x4.SetTRS(new Vector3(lux, 0, 0), Quaternion.identity, new Vector3(Screen.height / desiginHeight, Screen.height / desiginHeight, 1));
return guiMatri4x4;
}
/// <summary>
/// GUI逆矩阵
/// </summary>
/// <returns></returns>
public static Matrix4x4 getInvertMatrix()
{
//获取矩阵
Matrix4x4 guiInverseMatrix = getMatrix();
//计算逆矩阵
guiInverseMatrix = Matrix4x4.Inverse(guiInverseMatrix);
return guiInverseMatrix;
}
}