FlyCam Extended

From Unify Community Wiki
(Difference between revisions)
Jump to: navigation, search
(Added new script)
 
(Code C#)
Line 14: Line 14:
 
 
 
/*
 
/*
EXTENDED FLYCAM
+
EXTENDED FLYCAM
Desi Quintans (CowfaceGames.com), 17 August 2012.
+
Desi Quintans (CowfaceGames.com), 17 August 2012.
Based on FlyThrough.js by Slin (http://wiki.unity3d.com/index.php/FlyThrough), 17 May 2011.
+
Based on FlyThrough.js by Slin (http://wiki.unity3d.com/index.php/FlyThrough), 17 May 2011.
 
 
LICENSE
+
LICENSE
Free as in speech, and free as in beer.
+
Free as in speech, and free as in beer.
 
 
FEATURES
+
FEATURES
WASD/Arrows: Movement
+
WASD/Arrows:   Movement
  Q: Climb
+
          Q:   Climb
  E: Drop
+
          E:   Drop
  Shift: Move faster
+
              Shift:   Move faster
Control: Move slower
+
            Control:   Move slower
    End: Toggle cursor locking to screen (you can also press Ctrl+P to toggle play mode on and off).
+
                End:   Toggle cursor locking to screen (you can also press Ctrl+P to toggle play mode on and off).
 
*/
 
*/
 
 

Revision as of 13:31, 17 August 2012

Code C#

//
//Filename: ExtendedFlycam.cs
//
 
using UnityEngine;
using System.Collections;
 
public class ExtendedFlycam : MonoBehaviour
{
 
	/*
	EXTENDED FLYCAM
		Desi Quintans (CowfaceGames.com), 17 August 2012.
		Based on FlyThrough.js by Slin (http://wiki.unity3d.com/index.php/FlyThrough), 17 May 2011.
 
	LICENSE
		Free as in speech, and free as in beer.
 
	FEATURES
		WASD/Arrows:    Movement
		          Q:    Climb
		          E:    Drop
              Shift:    Move faster
            Control:    Move slower
                End:    Toggle cursor locking to screen (you can also press Ctrl+P to toggle play mode on and off).
	*/
 
	public float cameraSensitivity = 90;
	public float climbSpeed = 4;
	public float normalMoveSpeed = 10;
	public float slowMoveFactor = 0.25f;
	public float fastMoveFactor = 3;
 
	private float rotationX = 0.0f;
	private float rotationY = 0.0f;
 
	void Start ()
	{
		Screen.lockCursor = true;
	}
 
	void Update ()
	{
		rotationX += Input.GetAxis("Mouse X") * cameraSensitivity * Time.deltaTime;
		rotationY += Input.GetAxis("Mouse Y") * cameraSensitivity * Time.deltaTime;
		rotationY = Mathf.Clamp (rotationY, -90, 90);
 
		transform.localRotation = Quaternion.AngleAxis(rotationX, Vector3.up);
		transform.localRotation *= Quaternion.AngleAxis(rotationY, Vector3.left);
 
	 	if (Input.GetKey (KeyCode.LeftShift) || Input.GetKey (KeyCode.RightShift))
	 	{
			transform.position += transform.forward * (normalMoveSpeed * fastMoveFactor) * Input.GetAxis("Vertical") * Time.deltaTime;
			transform.position += transform.right * (normalMoveSpeed * fastMoveFactor) * Input.GetAxis("Horizontal") * Time.deltaTime;
	 	}
	 	else if (Input.GetKey (KeyCode.LeftControl) || Input.GetKey (KeyCode.RightControl))
	 	{
			transform.position += transform.forward * (normalMoveSpeed * slowMoveFactor) * Input.GetAxis("Vertical") * Time.deltaTime;
			transform.position += transform.right * (normalMoveSpeed * slowMoveFactor) * Input.GetAxis("Horizontal") * Time.deltaTime;
	 	}
	 	else
	 	{
	 		transform.position += transform.forward * normalMoveSpeed * Input.GetAxis("Vertical") * Time.deltaTime;
			transform.position += transform.right * normalMoveSpeed * Input.GetAxis("Horizontal") * Time.deltaTime;
	 	}
 
 
		if (Input.GetKey (KeyCode.Q)) {transform.position += transform.up * climbSpeed * Time.deltaTime;}
		if (Input.GetKey (KeyCode.E)) {transform.position -= transform.up * climbSpeed * Time.deltaTime;}
 
		if (Input.GetKeyDown (KeyCode.End))
		{
			Screen.lockCursor = (Screen.lockCursor == false) ? true : false;
		}
	}
}
Personal tools
Namespaces

Variants
Actions
Navigation
Extras
Toolbox