Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.76 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class NewMoveCamera : MonoBehaviour
  5. {
  6.     //Public
  7.     public int zoom = 40;
  8.     public int normal = 60;
  9.     public float smooth = 5;
  10.     public float speed = 10;
  11.  
  12.     //Objets
  13.  
  14.     public GameObject player;
  15.     public GameObject[] waypoints;
  16.  
  17.     //Private
  18.     private int i;
  19.     private Camera cam;
  20.     private bool moving;
  21.     private bool move = false;
  22.     private Vector3 targetPos = Vector3.zero;
  23.  
  24.     private void Start()
  25.     {
  26.         i = 0;
  27.         moving = false;
  28.         cam = Camera.main;
  29.     }
  30.     private void Update()
  31.     {
  32.         Cursor.visible = false;
  33.         if (Input.GetMouseButtonDown(0))
  34.         {
  35.             RaycastHit hit;
  36.             Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  37.             if (Physics.Raycast(ray, out hit, 100f))
  38.             {
  39.                 if (hit.transform != null)
  40.                 {
  41.                     Rigidbody rb;
  42.                     if (rb = hit.transform.GetComponent<Rigidbody>())
  43.                     {
  44.                         targetPos = hit.transform.position;
  45.                         if (moving == false && move == false)
  46.                         {
  47.                             switch (hit.transform.gameObject.name)
  48.                             {
  49.                                 case ("Sphere"):
  50.                                     i = 0;
  51.                                     StartCoroutine(MoveToWaypoint(waypoints[0].transform.position, speed));
  52.                                 break;
  53.  
  54.                                 case ("Sphere (1)"):
  55.                                     i = 1;
  56.                                     StartCoroutine(MoveToWaypoint(waypoints[1].transform.position, speed));
  57.                                 break;
  58.  
  59.                                 case ("Sphere (2)"):
  60.                                     i = 2;
  61.                                     StartCoroutine(MoveToWaypoint(waypoints[2].transform.position, speed));
  62.                                 break;
  63.  
  64.                                 case ("Sphere (3)"):
  65.                                     i = 3;
  66.                                     StartCoroutine(MoveToWaypoint(waypoints[3].transform.position, speed));
  67.                                 break;
  68.  
  69.                                 case ("Sphere (4)"):
  70.                                     i = 4;
  71.                                     StartCoroutine(MoveToWaypoint(waypoints[4].transform.position, speed));
  72.                                 break;
  73.                             }
  74.                         }
  75.                         move = true;
  76.                     }
  77.                 }
  78.             }
  79.         }
  80.  
  81.         if (move)
  82.         {
  83.             if (player.transform.position != targetPos)
  84.             {
  85.                 player.transform.position = Vector3.Lerp(player.transform.position, targetPos, speed * Time.deltaTime);
  86.                 cam.fieldOfView = Mathf.Lerp(cam.fieldOfView, zoom, Time.deltaTime * smooth);
  87.             }
  88.             else
  89.             {
  90.                 move = false;
  91.                 moving = false;
  92.                 cam.fieldOfView = Mathf.Lerp(cam.fieldOfView, zoom, Time.deltaTime * smooth);
  93.             }
  94.         }
  95.         if ((Input.GetAxis("Mouse ScrollWheel") < 0) || (Input.GetKey(KeyCode.DownArrow)))
  96.         {
  97.             transform.Rotate(0, 0, 0);
  98.             player.transform.position = new Vector3(0, 5.3f, 0);
  99.             cam.fieldOfView = 60;
  100.             move = false;
  101.             moving = false;
  102.         }
  103.         if ((Input.GetAxis("Mouse ScrollWheel") > 0) || (Input.GetKey(KeyCode.UpArrow)) && !moving)
  104.         {
  105.             if (i >= waypoints.Length)
  106.             {
  107.                 /*transform.Rotate(0, 0, 0);
  108.                 player.transform.position = new Vector3(0, 5.3f, 0);
  109.                 cam.fieldOfView = 60;
  110.                 move = false;
  111.                 moving = false;*/
  112.                 i = 0;
  113.             }
  114.             /*if (player.transform.position != waypoints[i].transform.position) {
  115.                 player.transform.position = Vector3.MoveTowards(player.transform.position, waypoints[i].transform.position, speed * Time.deltaTime);
  116.             }*/
  117.             StartCoroutine(MoveToWaypoint(waypoints[i++].transform.position, speed));
  118.         }
  119.     }
  120.     private IEnumerator MoveToWaypoint(Vector3 target, float speed)
  121.     {
  122.         moving = true;
  123.         float sT = speed * Time.deltaTime;
  124.         while (player.transform.position != target)
  125.         {
  126.             player.transform.position = Vector3.MoveTowards(player.transform.position, target, sT * 2.0f);
  127.             cam.fieldOfView = Mathf.Lerp(cam.fieldOfView, zoom, Time.deltaTime * smooth);
  128.             yield return null;
  129.         }
  130.         moving = false;
  131.         move = false;
  132.     }
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement