josemorval

Camera on circle editor

Mar 2nd, 2016
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.58 KB | None | 0 0
  1. //Editor code
  2. using UnityEngine;
  3. using UnityEditor;
  4.  
  5. [CustomEditor(typeof(CameraOnRails))]
  6. public class CurveForCamera : Editor {
  7.     void OnSceneGUI() {
  8.         CameraOnRails cameraOnRails = target as CameraOnRails;
  9.  
  10.         Vector3 v = new Vector3(cameraOnRails.radius*Mathf.Cos(2f*Mathf.PI*cameraOnRails.posInCurve),
  11.                                 0f,
  12.                                 cameraOnRails.radius*Mathf.Sin(2f*Mathf.PI*cameraOnRails.posInCurve));
  13.         v+= cameraOnRails.transform.position;
  14.  
  15.         if(cameraOnRails.cameraTransform!=null){
  16.             cameraOnRails.cameraTransform.position = v;
  17.             v = cameraOnRails.transform.position+new Vector3(0f,cameraOnRails.cameraSlope,0f);
  18.             cameraOnRails.cameraTransform.LookAt(v);
  19.         }
  20.  
  21.  
  22.         int n = cameraOnRails.numberSegments;
  23.  
  24.  
  25.  
  26.         for(int i=0;i<(n-1);i++){
  27.  
  28.             Vector3 v1 = new Vector3(cameraOnRails.radius*Mathf.Cos(2f*Mathf.PI*i/(n-1)),
  29.                                      0f,
  30.                                      cameraOnRails.radius*Mathf.Sin(2f*Mathf.PI*i/(n-1)));
  31.            
  32.             Vector3 v2 = new Vector3(cameraOnRails.radius*Mathf.Cos(2f*Mathf.PI*(i+1)/(n-1)),
  33.                                      0f,
  34.                                      cameraOnRails.radius*Mathf.Sin(2f*Mathf.PI*(i+1)/(n-1)));
  35.            
  36.             Handles.color = Color.green;
  37.             Handles.DrawLine(v1+cameraOnRails.transform.position,v2+cameraOnRails.transform.position);
  38.         }
  39.  
  40.     }
  41. }
  42.  
  43.  
  44. //Scene code
  45. using UnityEngine;
  46. using System.Collections;
  47.  
  48. [ExecuteInEditMode]
  49. public class CameraOnRails : MonoBehaviour {
  50.  
  51.     [RangeAttribute(10,50)]
  52.     public int numberSegments;
  53.     public float radius;
  54.     public Transform cameraTransform;
  55.     [RangeAttribute(0.0f, 2.0f)]
  56.     public float posInCurve;
  57.  
  58.     [RangeAttribute(-20f,20f)]
  59.     public float cameraSlope;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment