Return to Snippet

Revision: 65993
at February 24, 2014 05:41 by joseques


Initial Code
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);
		transform.position = new Vector3(X, Y, transform.position.z);
		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;
    	}
	}
}

Initial URL

                                

Initial Description
For UnityAnswers

Initial Title
CameraFollower.cs

Initial Tags

                                

Initial Language
C#