浅谈UGUI中Canvas RectTransform的Scale

前言

Canvas的Rect Transform组件的Scale值和Canvas组件的Render Mode设置有关。

当为Screen Space - Overlay时Scale值为1,不可更改。

当为World Space的时候,Scale值默认为1,但是可以修改。

下面具体总结一下Render Mode为Screen Space - Camera时,Scale值的计算方式。

Screen Spcae - Camera模式下的Scale值

该模式下Scale值是由引擎内部自动计算得到的,且不能修改。

该模式依赖一个Camera,通常情况下在UI系统中我们会使用正交相机。下文详细探讨正交相机模式下的Scale值,透视相机后面有空再推导。

假设当前屏幕的高度为ScreenH,正交相机有个用户可以设置的参数Size,那么有公式如下:

ScreenH*Scale*(1/2)=Size

可以得到:Scale=(2*Size)/ScreenH

对比Sprite Renderer

在做纯2D游戏时,多使用Sprite Renderer组件,一般也使用正交相机,相机的Size设置规则为:Size=设计分辨率高度/100/2

建议

使用UGUI开发时,UI相机的Size不要随意设置。使用规则:Size=设计分辨率高度/100/2

猜你喜欢

转载自blog.csdn.net/iningwei/article/details/113949339