Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 12th, 2012  |  syntax: None  |  size: 2.44 KB  |  hits: 9  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. /// <summary>
  2. /// FPSMouseLook.cs
  3. /// Niels Wouters
  4. /// 11 May 2012
  5. /// </summary>
  6.  
  7. using UnityEngine;
  8. using System.Collections;
  9.  
  10. public class FPSMouseLook : MonoBehaviour {
  11.        
  12.         public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }                                                                                                             // Enum voor het instellen van de axes (MouseXAndY, MouseX, MouseY)
  13.         public RotationAxes axes = RotationAxes.MouseXAndY;                                                                                                                                             // Een variabele axes voor de enum en zet de default als MouseXAndY
  14.         //
  15.         public float sensitivityX = 400f;                                                                                                                                                                               // De gevoeligheid voor de X richting
  16.         public float sensitivityY = 400f;                                                                                                                                                                               // De gevoeligheid voor de Y richting
  17.  
  18.         public float minimumY = -60f;                                                                                                                                                                                   // Minimum draaiing van de Y richting
  19.         public float maximumY = 60f;                                                                                                                                                                                    // Maximum draaiing van de Y richting
  20.  
  21.         float rotationY = 0f;                                                                                                                                                                                                   // De variabele rotationY voor het bijhouden van de Y rotatie
  22.         float rotationX = 0f;                                                                                                                                                                                                   // De variabele rotationX voor het bijhouden van de X rotatie
  23.                
  24.         void Update ()
  25.         {
  26.                 if (axes == RotationAxes.MouseXAndY)                                                                                                                                                            // Als je beide richtingen wilt bewegen
  27.                 {
  28.                         rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX * Time.deltaTime;                    // De X rotatie berekenen en de gevoeligheid toepassen
  29.                
  30.                         rotationY += Input.GetAxis("Mouse Y") * sensitivityY * Time.deltaTime;                                                                                  // De Y rotatie berekenen en de gevoeligheid toepassen
  31.                         rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);                                                                                                                // De Y rotatie binnen de minimum en maximum houden
  32.                        
  33.                         transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);                                                                                             // De rotatie toepassen op het object
  34.                 }
  35.                 else if (axes == RotationAxes.MouseX)                                                                                                                                                           // Als je enkel de X richting wilt bewegen
  36.                 {
  37.                         transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX * Time.deltaTime, 0);                                                               // De X rotatie berekenen en de gevoeligheid toepassen en meteen toepassen op het object
  38.                 }
  39.                 else
  40.                 {
  41.                         rotationY += Input.GetAxis("Mouse Y") * sensitivityY * Time.deltaTime;                                                                                  // De Y rotatie berekenen en de gevoeligheid toepassen
  42.                         rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);                                                                                                                // De Y rotatie binnen de minimum en maximum houden
  43.                        
  44.                         transform.localEulerAngles = new Vector3(-rotationY, transform.localEulerAngles.y, 0);                                                  // De y rotatie toepassen op het object
  45.                 }
  46.         }
  47. }