zoukankan      html  css  js  c++  java
  • 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 =。= 最近的游戏项目

    如果你感兴趣,你可以把你妹妹介绍给我
  • 相关阅读:
    Android内存管理篇
    Android内存管理篇
    Java:ServiceLoader未加载服务提供实现类
    Java:SPI机制
    利用向量积(叉积)计算三角形的面积和多边形的面积
    VMware虚拟机安装WinXP出现错误output error file to the following location A:GHOSTERR.TXT
    @media与css先后顺序产生的优先级问题
    css 始终显示滚动条,内容超出显示有滑块的滚动条,内容没有超出显示空的滚动条
    css 内容溢出显示垂直滚动条,内容不超出就不显示滚动条
    css 一行或多行文字溢出以...的形式隐藏
  • 原文地址:https://www.cnblogs.com/plateFace/p/4424632.html
Copyright © 2011-2022 走看看