Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- public class CameraBehaviour : MonoBehaviour
- {
- public Vector2 TopLeftLimit = new Vector2(-50f, 50f);
- public Vector2 BottomRightLimit = new Vector2(50f, -50f);
- public Vector2 CameraZoomLimit = new Vector2(5f, 10f);
- // public Vector2 DepthLimit = new Vector2(-5f, -10f);
- public float Speed = 5f;
- private float sensitivity = 2.0f;
- private float cameraZoom = 0;
- private ModeSwitch _modeSwitch;
- private GameObject _player;
- private Transform _playerTransform;
- private Vector3 _resetCamera;
- private bool _drag = false;
- void Start()
- {
- _modeSwitch = GameObject.Find("ModeManager").GetComponent<ModeSwitch>();
- _resetCamera = Camera.main.transform.position;
- cameraZoom = Camera.main.transform.position.z;
- _player = GameObject.Find("Character");
- _playerTransform = _player.transform;
- }
- void Update()
- {
- if (_modeSwitch._mode == GameMode.Editor)
- {
- if (Input.GetMouseButtonDown(1))
- Camera.main.transform.position = _resetCamera;
- if (Input.GetKey(KeyCode.Space) && Input.GetMouseButtonDown(0))
- _drag = true;
- if (Input.GetMouseButtonUp(0))
- _drag = false;
- if (_drag)
- {
- float x = -Input.GetAxis("Mouse X");
- float y = -Input.GetAxis("Mouse Y");
- transform.Translate(x, y, 0);
- }
- if (Input.GetAxis("Mouse ScrollWheel") != 0)
- {
- cameraZoom -= Input.GetAxis("Mouse ScrollWheel") * sensitivity;
- cameraZoom = Mathf.Clamp(cameraZoom, CameraZoomLimit.x, CameraZoomLimit.y);
- }
- //Clamp
- float x2 = Mathf.Clamp(transform.position.x, TopLeftLimit.x, BottomRightLimit.x);
- float y2 = Mathf.Clamp(transform.position.y, BottomRightLimit.y, TopLeftLimit.y);
- transform.position = new Vector3(x2, y2, cameraZoom);
- }
- else
- {
- Vector3 targetPos = new Vector3(_playerTransform.position.x, _playerTransform.position.y, cameraZoom);
- transform.position = Vector3.Lerp(transform.position, targetPos, Time.deltaTime * Speed);
- this.transform.position = new Vector3(_player.transform.position.x, _player.transform.position.y, transform.position.z);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement