如何修复2D相机滚轮缩放时orthographicSize闪烁复位问题
2D相机缩放闪烁问题修复
问题根源
你当前的代码每次都会直接将orthographicSize设置为(Input.mouseScrollDelta.y + 11) * -1,这意味着不管当前相机的缩放状态如何,每次滚动滚轮都会强制把缩放值重置到和11绑定的固定数值,而非在当前缩放基础上调整,这就是导致闪烁并恢复初始值的原因。
修复代码
将赋值逻辑改为基于当前orthographicSize进行增量调整,再保留你的范围限制逻辑:
// 基于当前缩放值调整:滚轮向上(y为正)时缩小orthographicSize(画面放大),向下(y为负)时增大(画面缩小) Camera.main.orthographicSize -= Input.mouseScrollDelta.y; // 限制缩放范围,防止无限缩放 if (Camera.main.orthographicSize < -50) { Camera.main.orthographicSize = -50; } if (Camera.main.orthographicSize > -1) { Camera.main.orthographicSize = -1; }
额外提示
通常Unity的orthographicSize默认是正数,值越小代表相机视野越小(画面放大),值越大视野越大(画面缩小)。如果你的负数设置是误操作,建议改为正数范围(比如1到50),调整逻辑保持不变即可,这样更符合Unity的常规使用习惯。
内容的提问来源于stack exchange,提问作者ThatGuyMatt
相关产品推荐
相关产品推荐

