首先用鼠标滚轮进行缩放,也就是用到了 Input.GetAxis("Mouse ScrollWheel")这个值来判断放大或是缩小。
然后通过上面的值设置Camera的orthographicSize(正交camera)来缩放相机的显示范围。
newSize -= Input.GetAxis("Mouse ScrollWheel") * SizeSpeed;
//限制了最小与最大缩放
if (newSize < 0 )
{
newSize = MinSize;
}
if (newSize > 5)
{
newSize = MaxSize;
}
MainCam.orthographicSize = Mathf.Lerp(MainCam.orthographicSize, newSize, Time.deltaTime * SizeSmooth);
相机的平滑移动如下:
float newMoveSpeed = MoveSpeed * MainCam.orthographicSize / 10.0f;
if (Input.GetMouseButton(2))
{
transform.Translate(Vector3.left * Input.GetAxis("Mouse X") * newMoveSpeed);
transform.Translate(Vector3.down * Input.GetAxis("Mouse Y") * newMoveSpeed);
}
当然,变量预定义,相机获取就不写出来了...