Вот написал код движения камеры и зума, для пк и моб
spoilerprivate void MoveCamera(){
#if UNITY_EDITOR
if(Input.GetAxis("Mouse ScrollWheel") != 0){
float PrevMapScale = MapScale;
if(Input.GetAxis("Mouse ScrollWheel") > 0){ MapScale = MapScale - 0.5f; }else MapScale = MapScale + 0.5f;
if(MapScale < MapScaleMax) MapScale = MapScaleMax;
if(MapScale > MapScaleMin) MapScale = MapScaleMin;
if(PrevMapScale != MapScale){ MainCamera.orthographicSize = MapScale; }
}
if(Input.GetMouseButtonDown(0)){ CurrentPositionCamera = MainCamera.ScreenToWorldPoint(Input.mousePosition); }
if(Input.GetMouseButton(0)){
Vector3 DifferencePositionCamera = CurrentPositionCamera - MainCamera.ScreenToWorldPoint(Input.mousePosition);
if(DifferencePositionCamera != PrevPositionCamera){
MainCamera.transform.position += DifferencePositionCamera;
PrevPositionCamera = DifferencePositionCamera;
}
}
#else
if(Input.touchCount == 1){
Touch touch = Input.GetTouch(0);
if(touch.phase == TouchPhase.Began){ CurrentPositionCamera = MainCamera.ScreenToWorldPoint(Input.mousePosition); }
else if(touch.phase == TouchPhase.Moved){
Vector3 DifferencePositionCamera = CurrentPositionCamera - MainCamera.ScreenToWorldPoint(Input.mousePosition);
if(DifferencePositionCamera != PrevPositionCamera){
MainCamera.transform.position += DifferencePositionCamera;
PrevPositionCamera = DifferencePositionCamera;
}
}
}
else if(Input.touchCount == 2){
float PrevMapScale = MapScale;
Touch touchZero = Input.GetTouch(0);
Touch touchOne = Input.GetTouch(1);
Vector2 touchZeroPrevPos = touchZero.position - touchZero.deltaPosition;
Vector2 touchOnePrevPos = touchOne.position - touchOne.deltaPosition;
float prevTouchDeltaMag = (touchZeroPrevPos - touchOnePrevPos).magnitude;
float touchDeltaMag = (touchZero.position - touchOne.position).magnitude;
float deltaMagnitudeDiff = (prevTouchDeltaMag - touchDeltaMag) / 100;
MapScale += deltaMagnitudeDiff;
if(MapScale < MapScaleMax) MapScale = MapScaleMax;
if(MapScale > MapScaleMin) MapScale = MapScaleMin;
if(PrevMapScale != MapScale){ MainCamera.orthographicSize = MapScale; }
}
#endif
}
на ПК (в редакторе) все работает идеально, на телефоне если просто двигать камеру то норм, но вот когда начинаю зум менять то начинают координаты камеры прыгать, кручу уже который час и не могу понять в чем дело то?
Подскажите...