我只是想为Android游戏创建一个摄像头,你可以用它来缩放和移动x轴,我想限制这个摄像头。例如,我希望当orthographicSize大于我的变量max_zoom或小于我的变量min_zoom时,相机会停止缩放。
问题在于,如果用户缩放得非常快,则更新功能不会快速更新,例如,即使我的min_zoom变量等于1,orthographicSize也等于0.995。这是我的条件:
if(GetComponent<Camera> ().orthographicSize > min_zoom && GetComponent<Camera> ().orthographicSize < max_zoom) {
// .. change the orthographic size based on the change in distance between the touches.
GetComponent<Camera> ().orthographicSize += deltaMagnitudeDiff * orthoZoomSpeed;
// Make sure the orthographic size never drops below zero.
GetComponent<Camera> ().orthographicSize = Mathf.Max(GetComponent<Camera> ().orthographicSize, 0.1f);
}
所以问题是用户无法缩小。
答案 0 :(得分:0)
好的,所以我终于找到了缩放的解决方案。我只是删除了条件,在我的脚本结束时,我使用Mathf.clamp在我的min_zoom和max_zoom之间设置orthographicSize。我有的最后一个问题,但它不是关于缩放,是我无法在右侧和左侧进行修复限制,因为当您缩放时,限制的协调变化,但这是另一个主题的主题。无论如何,谢谢你的答案。
答案 1 :(得分:-1)
为什么你为每个函数调用GetComponent<Camera>()
,你可以在启动时调用它就足够了。
Camera cam;
void Start ()
{
cam = GetComponent<Camera> ();
}
// Update is called once per frame
void Update ()
{
if( cam.orthographicSize > min_zoom && cam.orthographicSize < max_zoom)
{
cam.orthographicSize += deltaMagnitudeDiff * orthoZoomSpeed;
cam.orthographicSize = Mathf.Max(cam.orthographicSize, 0.1f);
}
}