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

}

image =。= 最近的游戏项目

你可能感兴趣的:(unity)