Camera Size 与 Screen Size 之间的关系
相机的设置决定了在屏幕里面可以看到多少个世界单位 unit
如果使用的是正交相机,那么 Camera 的 Size 属性决定了相机能看到的竖向范围为 2*size 个世界单位 unit
为啥是竖向?别人 unity 写死了
从理论上来讲,也只需要从竖向和横向之中选一个定义,让另一个从动就好了
下面那个 viewport rect 属性看上去挺相关的,实际上是用来做分屏的,与屏幕分辨率无关
又因为 Unity 里面,一个 unit 默认是 100 个像素
所以有 2 * size * 100 = Camera 视野的长边的像素长度
而 Camera 视野与 Screen Size 之间的关系就是,Camera 视野的长边就是 Screen Size 的 y
这样的话,如果要开发竖屏游戏,以 Screen Size 的 y 为准是比较方便的
假设我设计尺寸是 1080*1920 那么 Camera 的 Size = 1920/200 = 9.6
我还看到别人有写自动设置 size 的代码……暂时不知道他要做啥
其他可能用到的
pixels per unit
纹理的设置 pixels per unit 决定了一个世界单位 unit 可以显示该纹理的多少个像素
canvsa scaler resolution
这个 canvsa scaler 的作用就是把你的 UI 界面的尺寸对标到你设置的这个 Reference Resolution
我觉得对于手机来说,最好的就是设置 Match = 1,这样的话,你的 UI 界面的尺寸的 y = Reference Resolution 的 y
然后你又如果在前面设置了 Camera 的 Size = 1920/200 = 9.6,那么世界中的像素分辨率就会等于 UI 界面中的分辨率了
也就是说,你在 Canvas 下面设置一个 width = 100 height = 100 的 image 他就一定会对应世界中的 1 1 unit 的长度
最终达成的效果是,世界中的 sprite render 和 UI 中的 image 终于能统一了