Advertisement
brainode

Camera Controller for My RPG Epam

Jul 20th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.66 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.Experimental.UIElements;
  5.  
  6. public class CameraController : MonoBehaviour
  7. {
  8.  
  9.     private Vector3 v3Offset;
  10.     private GameObject goPlayer;
  11.  
  12.  
  13.     private float RotateSpeed = 5.0F;
  14.  
  15.     private float yMinLimit = 0;
  16.     private float yMaxLimit = 80;
  17.     private float xDeg = 0f;
  18.     private float yDeg = 0f;
  19.  
  20.     private bool bRotated = true;
  21.     void Start ()
  22.     {
  23.         goPlayer = GameObject.FindGameObjectWithTag("Player");
  24.         Vector3 angles = transform.eulerAngles;
  25.         xDeg = angles.x;
  26.         yDeg = angles.y;
  27.         v3Offset = transform.position - goPlayer.transform.position;
  28.         //transform.LookAt(goPlayer.transform);
  29.     }
  30.    
  31.    
  32.     void LateUpdate ()
  33.     {
  34.         xDeg += Input.GetAxis("Mouse X") * RotateSpeed;
  35.         yDeg -= Input.GetAxis("Mouse Y") * RotateSpeed;
  36.  
  37.         yDeg = ClampAngle(yDeg, yMinLimit, yMaxLimit);
  38.  
  39.         Quaternion qRotation = Quaternion.Euler(yDeg,xDeg,0);
  40.         Quaternion qPlayerRotation = Quaternion.Euler(0, xDeg, 0);
  41.  
  42.         float fScrolling = Input.GetAxis("Mouse ScrollWheel");
  43.         v3Offset += v3Offset * fScrolling;
  44.      
  45.         transform.rotation = qRotation;
  46.         goPlayer.transform.rotation = Quaternion.Slerp(goPlayer.transform.rotation,qPlayerRotation,Time.deltaTime*0.9F);
  47.         transform.position = goPlayer.transform.position - (qRotation * Vector3.forward * v3Offset.magnitude);
  48.  
  49.     }
  50.     static float ClampAngle(float angle,float min,float max)
  51.     {
  52.         if (angle < -360)
  53.             angle += 360;
  54.         if (angle > 360)
  55.             angle -= 360;
  56.         return Mathf.Clamp(angle, min, max);
  57.     }
  58.  
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement