非线性正交缩放

时间:2018-07-09 15:40:49

标签: c# unity3d camera touch zoom

简介:我在Unity中有一个关卡,并且相机已设置为正交投影的自顶向下视图。我想以正字大小为[100,2000]单位的范围内的带触摸输入的捏合手势来放大/缩小。

问题:我对此有2个解决方案,令我不满意。

一个是具有线性单位数量的缩放,正交大小越大(缩小),则缩小得越慢。如果放大了,缩放速度会更快。触摸输入时感觉不佳且直观。

另一个是可以正常工作的非线性解决方案。但是并不是很精确,并且可以进行很多放大和缩小操作。

//Solution Liniear
camera.orthographicSize += deltaZoom;

//Solution Non-Liniear (scales with orthographic size)
deltaZoom *= (camera.orthographicSize / 100);
camera.orthographicSize += deltaZoom;

问题:存在什么数学解决方案,所以当地形图尺寸较小时,相机变焦速度会变慢,而当地形尺寸较小时,相机变焦速度会变快?我还希望它精确,就像我用手指捏放大一样,它可以精确地缩小单位数量。

0 个答案:

没有答案