/ Published in: C#
For UnityAnswers
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
using UnityEngine; using System.Collections; public class CameraLimiter : MonoBehaviour { public float minX = 0; public float maxX = 90; public float minY = 0; public float maxY = 10; public float minSize = 3; public float maxSize = 10; public float zoomSpeed = 10; public float deftZoom = 5; private bool reset; void Update () { float X = Mathf.Clamp(transform.position.x,minX ,maxX); float Y = Mathf.Clamp(transform.position.y,minY ,maxY); checkZoom(); } void checkZoom(){ if(Input.GetButton("zoomIn") || Input.GetAxis("Mouse ScrollWheel") > 0){ float clamped = Mathf.Clamp(camera.orthographicSize-(Time.deltaTime*zoomSpeed), minSize, maxSize); camera.orthographicSize = clamped; } else if(Input.GetButton("zoomOut") || Input.GetAxis("Mouse ScrollWheel") < 0){ float clamped = Mathf.Clamp(camera.orthographicSize+(Time.deltaTime*zoomSpeed), minSize, maxSize); camera.orthographicSize = clamped; } else if(Input.GetButton("resetZoom") || Input.GetMouseButtonUp(2)){ reset = true; StartCoroutine("cameraReset"); } } IEnumerator cameraReset() { while(reset){ camera.orthographicSize = Mathf.Lerp(camera.orthographicSize, deftZoom, (Time.deltaTime*zoomSpeed)); if(Mathf.Approximately(camera.orthographicSize, deftZoom)) reset = false; yield return null; } } }