Unity 屏幕适配小脚本

时间:2023-03-09 20:41:48
Unity 屏幕适配小脚本

屏幕适配是可以通过代码实现的,相信给你时间就一定能写出来. 我们公司貌似没有分辨率适配框架通常对应小屏幕的苹果4要额外设置下等等就完了!

屏幕适配框架实现思路:  通过代码获取当前的分辨率 –> 选择不同图片显示 –> 游戏场景对分辨的相应变化

 

屏幕简单适配的小脚本:

using UnityEngine;
using System.Collections; public class ScreenWide : MonoBehaviour { public Vector2 designResolution = new Vector2(960f, 640f); //设计的时候分辨率
public FitType match = FitType.stretch; //屏幕适配的类型
public bool isUseFit; //是否使用屏幕适配 [HideInInspector] public Vector2 percentage; //屏幕是配比
[HideInInspector] public float percentageWH = 0;
[HideInInspector] public Vector3 old_scale; public void Start(){
old_scale = transform.localScale; //进行分辨率适配
if (isUseFit) {
Fit();
}
} public void Fit()
{
//计算百分比 高,宽
percentage = new Vector2(designResolution.x / (Screen.width * 1.0f), designResolution.y / (Screen.height * 1.0f));
percentageWH = Screen.width / (Screen.height * 1.0f) / (designResolution.x / designResolution.y); switch (match) {
case FitType.stretch: //拉伸
transform.localScale = new Vector3(old_scale.x * percentageWH, old_scale.y * percentageWH, old_scale.z);
break;
case FitType.accordingHeight:// 以高为准
transform.localScale = new Vector3(old_scale.x / percentage.y, old_scale.y / percentage.y, old_scale.z);
break;
case FitType.accordingWidth:// 以宽为准
transform.localScale = new Vector3(old_scale.x / percentage.x, old_scale.y / percentage.x, old_scale.z);
break;
case FitType.onlyHeight: // 只有宽拉伸
transform.localScale = new Vector3(old_scale.x, percentageWH * old_scale.y, old_scale.z);
break;
case FitType.onlyWidth: // 不进行图片适配
transform.localScale = new Vector3(percentageWH * old_scale.x, old_scale.y, old_scale.z);
break;
} } }
/// <summary>
/// 屏幕适配枚举
/// </summary>
public enum FitType
{
/// <summary>
/// 拉伸
/// </summary>
stretch,
/// <summary>
/// 以高为准
/// </summary>
accordingHeight,
/// <summary>
/// 以宽为准
/// </summary>
accordingWidth,
/// <summary>
/// 只有高拉伸
/// </summary>
onlyHeight,
/// <summary>
/// 只有宽拉伸
/// </summary>
onlyWidth,
/// <summary>
/// 不进行图片适配
/// </summary>
none
}

Unity 屏幕适配小脚本 =。= 最近的游戏项目