aboutsummaryrefslogtreecommitdiff
path: root/examples/UnityExample/Assets/Scripts/FreeCamera.cs
diff options
context:
space:
mode:
authorBryan Galdrikian <[email protected]>2017-02-24 09:32:20 -0800
committerBryan Galdrikian <[email protected]>2017-02-24 09:32:20 -0800
commite1bf674c16e3c8472b29574159c789cd3f0c64e0 (patch)
tree9f0cfce09c71a2c27ff19589fcad6cd83504477c /examples/UnityExample/Assets/Scripts/FreeCamera.cs
parentfirst commit (diff)
downloadblast-e1bf674c16e3c8472b29574159c789cd3f0c64e0.tar.xz
blast-e1bf674c16e3c8472b29574159c789cd3f0c64e0.zip
Updating to [email protected] and [email protected] with a new directory structure.
NvBlast folder is gone, files have been moved to top level directory. README is changed to reflect this.
Diffstat (limited to 'examples/UnityExample/Assets/Scripts/FreeCamera.cs')
-rw-r--r--examples/UnityExample/Assets/Scripts/FreeCamera.cs61
1 files changed, 61 insertions, 0 deletions
diff --git a/examples/UnityExample/Assets/Scripts/FreeCamera.cs b/examples/UnityExample/Assets/Scripts/FreeCamera.cs
new file mode 100644
index 0000000..1e9fd67
--- /dev/null
+++ b/examples/UnityExample/Assets/Scripts/FreeCamera.cs
@@ -0,0 +1,61 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class FreeCamera : MonoBehaviour
+{
+ 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()
+ {
+ Cursor.lockState = CursorLockMode.Confined;
+ rotationX = transform.localRotation.eulerAngles.y;
+ rotationY = -transform.localRotation.eulerAngles.x;
+ }
+
+ void Update()
+ {
+ if(!Input.GetMouseButton(1))
+ {
+ return;
+ }
+
+ 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))
+ //{
+ // Cursor.lockState = (Cursor.lockState == CursorLockMode.Confined) ? CursorLockMode.None : CursorLockMode.Confined;
+ //}
+ }
+}