Unity中如何将Pixel Perfect Camera尺寸设置为5?
解决Unity Pixel Perfect Camera强制固定正交尺寸为5的方法
Pixel Perfect Camera会根据屏幕分辨率和Pixels per Unit自动计算适配的正交尺寸,这就是你手动设5但实际变成5.4的原因。以下是几种可行的解决办法:
方法一:调整Pixels Per Unit匹配目标尺寸
根据相机正交尺寸公式:相机高度(单位)= 屏幕高度像素 / (2 * Pixels per Unit),反过来推导,要固定高度为5,对应的Pixels per Unit应为:1080 / (2 * 5) = 108
- 将项目的
Pixels per Unit统一设置为108(包括Sprite资源的导入设置) - 此时Pixel Perfect Camera计算出的尺寸正好是5,同时保持像素完美适配
方法二:修改Pixel Perfect Camera的适配设置
直接关闭自动尺寸计算,强制使用手动设置的值:
- 选中挂载Pixel Perfect Camera的相机,在组件面板中找到Resolution Match选项
- 将其改为
Match Width Or Height,设置Match值为0(优先匹配宽度)或1(优先匹配高度) - 勾选Manual Orthographic Size,此时你设置的Size=5会被强制生效
注意:这种方式可能会让屏幕出现黑边或轻微拉伸,需要根据你的游戏画面需求权衡
方法三:通过代码强制锁定尺寸
如果需要保留原有Pixels per Unit和适配逻辑,同时强制锁定尺寸,可以用脚本实现:
using UnityEngine; using UnityEngine.U2D; public class LockCameraOrthographicSize : MonoBehaviour { [SerializeField] private float targetSize = 5f; private PixelPerfectCamera _pixelCam; private void Awake() { _pixelCam = GetComponent<PixelPerfectCamera>(); if (_pixelCam == null) return; _pixelCam.manualOrthographicSize = true; _pixelCam.orthographicSize = targetSize; _pixelCam.Refresh(); } }
- 将该脚本挂载到相机对象上,即可强制锁定正交尺寸为5,同时保留像素对齐功能
内容的提问来源于stack exchange,提问作者Иван
相关产品推荐
相关产品推荐

