Advertisement
ToastyStoemp

Camera

Jan 24th, 2016
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.46 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class CameraBehaviour : MonoBehaviour
  5. {
  6.     public Vector2 TopLeftLimit = new Vector2(-50f, 50f);
  7.     public Vector2 BottomRightLimit = new Vector2(50f, -50f);
  8.     public Vector2 CameraZoomLimit = new Vector2(5f, 10f);
  9.     // public Vector2 DepthLimit = new Vector2(-5f, -10f);
  10.  
  11.     public float Speed = 5f;
  12.  
  13.     private float sensitivity = 2.0f;
  14.     private float cameraZoom = 0;
  15.     private ModeSwitch _modeSwitch;
  16.     private GameObject _player;
  17.     private Transform _playerTransform;
  18.  
  19.     private Vector3 _resetCamera;
  20.     private bool _drag = false;
  21.  
  22.  
  23.     void Start()
  24.     {
  25.         _modeSwitch = GameObject.Find("ModeManager").GetComponent<ModeSwitch>();
  26.         _resetCamera = Camera.main.transform.position;
  27.         cameraZoom = Camera.main.transform.position.z;
  28.         _player = GameObject.Find("Character");
  29.         _playerTransform = _player.transform;
  30.     }
  31.  
  32.     void Update()
  33.     {
  34.         if (_modeSwitch._mode == GameMode.Editor)
  35.         {
  36.             if (Input.GetMouseButtonDown(1))
  37.                 Camera.main.transform.position = _resetCamera;
  38.  
  39.             if (Input.GetKey(KeyCode.Space) && Input.GetMouseButtonDown(0))
  40.                 _drag = true;
  41.  
  42.             if (Input.GetMouseButtonUp(0))
  43.                 _drag = false;
  44.  
  45.             if (_drag)
  46.             {
  47.                 float x = -Input.GetAxis("Mouse X");
  48.                 float y = -Input.GetAxis("Mouse Y");            
  49.                 transform.Translate(x, y, 0);
  50.             }
  51.  
  52.             if (Input.GetAxis("Mouse ScrollWheel") != 0)
  53.             {
  54.                 cameraZoom -= Input.GetAxis("Mouse ScrollWheel") * sensitivity;
  55.                 cameraZoom = Mathf.Clamp(cameraZoom, CameraZoomLimit.x, CameraZoomLimit.y);
  56.             }
  57.             //Clamp
  58.             float x2 = Mathf.Clamp(transform.position.x, TopLeftLimit.x, BottomRightLimit.x);
  59.             float y2 = Mathf.Clamp(transform.position.y, BottomRightLimit.y, TopLeftLimit.y);
  60.             transform.position = new Vector3(x2, y2, cameraZoom);
  61.         }
  62.  
  63.         else
  64.         {
  65.             Vector3 targetPos = new Vector3(_playerTransform.position.x, _playerTransform.position.y, cameraZoom);
  66.             transform.position = Vector3.Lerp(transform.position, targetPos, Time.deltaTime * Speed);
  67.  
  68.             this.transform.position = new Vector3(_player.transform.position.x, _player.transform.position.y, transform.position.z);
  69.         }
  70.     }
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement