如何更改屏幕方向并获得更改的画布大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更改屏幕方向并获得更改的画布大小相关的知识,希望对你有一定的参考价值。

我正在从事一个统一的UI项目。我有多个场景。除了最后一个场景,我的场景都处于人像模式。最后一个场景是风景模式。对于启动方法的最后一个场景,我将“屏幕方向”设置为“ LandscapeLeft”,并将画布缩放器参考分辨率设置为800 * 600。我使用480 * 800屏幕,并且屏幕匹配模式为“匹配宽度或高度”,而匹配为宽度,因此画布在横向模式下应缩放至800 * 480。因为宽度必须匹配,所以高度将成为屏幕的最大值

但是当我统一运行时,屏幕不会更改为上一场景的风景,并且当我选择风景分辨率800 * 480时,画布大小为800 * 1333,画布大小更改为800 * 480,但是由于脚本无法等待我选择我的脚本认为画布尺寸为800 * 480的分辨率

void Start()

   Screen.orientation = ScreenOrientation.LandscapeLeft;
   Debug.Log(Screen.width+" - "+Screen.height);//output: 480-800
   Debug.Log(canvas.GetComponent<RectTransform>().rect.width + " - " + canvas.GetComponent<RectTransform>().rect.height);//output: 800-1333

enter image description here

我一开始就设定为横向,但是游戏来了,我希望将其更改为:

enter image description here

尝试更改方向时,我做错了吗?为什么游戏面板不更改为横向如何获得风景画布尺寸?

答案

更改设备的方向不会旋转或缩放画布。

匹配宽度或高度只会缩放画布,直到它碰到屏幕的一侧或屏幕的顶部/底部(如果使用的设备与原始分辨率不匹配则可以播放)。

解决方案:

将画布更改为世界空间并在更改设备方向时对其进行旋转/缩放

编辑:

在“渲染模式”下的画布组件中,选择世界空间

以上是关于如何更改屏幕方向并获得更改的画布大小的主要内容,如果未能解决你的问题,请参考以下文章

如果更改屏幕方向,如何修复按钮大小?

UIScrollView 在方向更改时没有获得新的大小

方向更改时不可见的片段

如何更改片段的大小?

安卓片段。在屏幕旋转或配置更改期间保留 AsyncTask

Android Fragment 和 Activity 在方向更改时的行为