栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

Unity Camera 动态摄像机大小

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity Camera 动态摄像机大小

需求

棋盘是放在世界中的,在各种分辨率下棋盘占据屏幕的相对宽度需要保持不变。
因此我需要根据屏幕的分辨率动态改变摄像机的大小来达到这样的效果。

 mCameraWorld.orthographicSize = 10f;

2D项目采用的正交视图,摄像机的基础大小为10。屏幕设计分辨率为1080*1920
摄像机orthographicSize属性代表的是摄像机照射范围高度的一半


红色的为摄像机照射范围,10 代表摄像机高度的一半
摄像机照射范围和UI重合。

可以计算得出摄像机宽为 1080/1920 * 20 = 11.25
要保持棋盘在UI中所占宽的比例不变,就需要使摄像机的宽在任何情况下都为 11.25
当屏幕分辨率发生改变,就可以倒推出摄像机的大小。
当屏幕分辨率改为1125*2436 时,屏幕的高是宽的 2436/1125 = 2.16倍。
摄像机的总高度应为 11.25 * 2.16 = 24.3;
最终得出摄像机的大小为 24.3/2 = 12.15;
下面贴出代码

private void GetCameraSize() {
        float designScreenHeight = 1920;
        float designScreenWidth = 1080;
        float designCameraSize = 10;

        float designCameraWidth = designScreenWidth / designScreenHeight * (designCameraSize*2);
        float currCameraHeight = Screen.height / Screen.width * designCameraWidth;
        float currCameraSize = currCameraHeight / 2;
    }
    //*2 和 /2 并不必要,只是为了逻辑清晰。

如此就可以动态设置摄像机的大小,从而达到,棋盘占屏幕宽度比例不变的效果。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901493.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号