About
- Use this script if you want to achieve pinch zoom-in and zoom-out effect in unity. Note : This is compatible with Orthographic Camera only for the time being.
In the next update I will include its working for the Perspective Camera also. - Pinching in/out will increase/decrease the orthographic size of the camera respectively.
How to use this script:
- Attach this script to an empty game object.
- Now run the code on any device.
Code :
using UnityEngine; using System.Collections; public class PinchTestOne : MonoBehaviour { // It sets the size of the camera at runtime. // after the fingers pinch in/out. float distance; // The max scale limit of the camera . public float maxScale = 20f; // The min scale limit of the camera . public float minScale = 7f; // Use this for initialization void Start () { //Set the main camera's size to minScale. Camera.main.orthographicSize = minScale; } // Update is called once per frame void Update () { //If two fingers are touched on the display. if(Input.touchCount==2){ //Store the first and second touch Touch touch0 = Input.GetTouch(0); Touch touch1 = Input.GetTouch(1); //the current distance between the two fingers touched on the screen Vector3 currentDist = touch0.position - touch1.position; //Calculate the previous distance when the fingers were moved Vector3 prevDist = (touch0.position - touch0.deltaPosition) - (touch1.position-touch1.deltaPosition); //The magnitude of two vectors is to be calculated which gives a very large value. Dividing by an integer triggers the smoothness of the changing value of the delta. float delta = (currentDist.magnitude - prevDist.magnitude)/50; //decreases the distance with factor. distance-=delta; //limit the maximum and the minimum values if(distance<minScale){ distance = minScale; } if(distance>maxScale){ distance = maxScale; } // Change the size of the camera accordingly with pinch // which turns out to be a pinch/zoom effect Camera.main.orthographicSize = distance; } } }
Note :
- Since this script’s variables are not accessible by any other GameObjects, hence class functions and variables are not mentioned here separately
- However, the uses of the variables/function in the code are properly commented.
Post By:- Siddharth Verma