Unity之2D游戏界面相机适配

之前写的关于2D游戏界面相机的水平、竖直、以人为中心三种模式的相机控制,我写着写着,总感觉相机适配有点繁琐,而且适配得不怎么好,多平台的时候因为资源有限我也不知道有没有完全适配,今天给大家分享一下我今天写的一个2D游戏场景相机适配,感觉挺好的,有需要的可以用着试试看,接下来我贴上代码:

using UnityEngine;
using System.Collections;

public class CameraControl_2D : MonoBehaviour {

    // 默认屏幕大小
    float width = 854.0f;
    float height = 480.0f;

    // Use this for initialization
    void Awake()
    {
        
        // 屏幕适配
        float orthographicSize = this.GetComponent().orthographicSize;
        print("aa:" + orthographicSize);
        orthographicSize *= (Screen.height / (float)Screen.width) / (height / width);
        print("bb:" + orthographicSize);
        this.GetComponent().orthographicSize = orthographicSize;
    }

}

    该相机用于适配镜头显示的场景,使其在各种平台上横向空间保持一样显示效果,至于竖直方向,我相信在做游戏的时候,要是单纯的手机屏幕还是可以满足正常显示,但是换到一些屏幕如电脑屏幕小窗口显示之类的,水平和竖直方向比例比较奇葩的,这种当然其实也是可以适配的,不过这就要你去调一下我上面写的width和height这两个值,和你相机组件里面的size了。

    相机适配以前我也觉得挺难,但是经过一段时间的使用,逐渐可以摸索到可用的方法了,所以我建议用不明白的朋友,多用几次,多关注一下相机组件的一些参数,根据需求去改变你的适配方案。其实我感觉,Unity里面的很多组件,只要你多关注一下你相应组件的相关参数和相关设置,一般问题都能解决,就如粒子系统一样,你仔细研究里面的参数的时候,你会发现控制粒子变化和粒子的一些特性思路会变得比较清晰。

    (之前写这个适配的时候,没有写这些提示,是因为以为大多数人也许都懂,我讲了好像没有意义,但是最近遇到一起开发的朋友在说这个问题,我就顺便提一嘴了,毕竟也许初学者不大明白,就像刚开始学的时候的我一样)


你可能感兴趣的:(Unity3D)