From e6117313ade85f1bfdd1d1f85bdb87d6a23ed43d Mon Sep 17 00:00:00 2001 From: ntr Date: Fri, 30 Jun 2023 17:45:55 +1000 Subject: [PATCH] deceleration boiiii --- Assets/CameraController.cs | 16 ------- Assets/CameraController.cs.meta | 11 ----- Assets/Scenes/SampleScene.unity | 80 +++++---------------------------- Assets/ShipControls.cs | 76 +++++++++++++++++++++---------- 4 files changed, 63 insertions(+), 120 deletions(-) delete mode 100755 Assets/CameraController.cs delete mode 100755 Assets/CameraController.cs.meta diff --git a/Assets/CameraController.cs b/Assets/CameraController.cs deleted file mode 100755 index dcceefb..0000000 --- a/Assets/CameraController.cs +++ /dev/null @@ -1,16 +0,0 @@ -using UnityEngine; -using System.Collections; - -public class CameraController : MonoBehaviour { - public float speedH = 0.5f; - public float speedV = 0.5f; - - private float yaw = 0.0f; - private float pitch = 0.0f; - - void Update() { - yaw += speedH * Input.GetAxis("Mouse X"); - pitch -= speedV * Input.GetAxis("Mouse Y"); - transform.eulerAngles = new Vector3(pitch, yaw, 0.0f); - } -} diff --git a/Assets/CameraController.cs.meta b/Assets/CameraController.cs.meta deleted file mode 100755 index daf26b2..0000000 --- a/Assets/CameraController.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 0fb2c71947a1f324288916d506ccb34d -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity index 5fff065..99b70d1 100644 --- a/Assets/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -9040,7 +9040,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 7140281db71bac44f958af6e8c7f48b3, type: 3} propertyPath: m_LocalPosition.y - value: -120 + value: -100 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 7140281db71bac44f958af6e8c7f48b3, type: 3} propertyPath: m_LocalPosition.z @@ -12651,14 +12651,14 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 705507993} - m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} - m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalRotation: {x: 0.13244484, y: 0.56484544, z: -0.09244638, w: 0.8092352} + m_LocalPosition: {x: 100, y: 100, z: 100} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} + m_LocalEulerAnglesHint: {x: 18.59, y: 69.83, z: 0} --- !u!65 &705507996 BoxCollider: m_ObjectHideFlags: 0 @@ -13178,7 +13178,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 7140281db71bac44f958af6e8c7f48b3, type: 3} propertyPath: m_LocalPosition.y - value: -140 + value: -120 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 7140281db71bac44f958af6e8c7f48b3, type: 3} propertyPath: m_LocalPosition.z @@ -19637,8 +19637,6 @@ GameObject: - component: {fileID: 1048473338} - component: {fileID: 1048473341} - component: {fileID: 1048473340} - - component: {fileID: 1048473339} - - component: {fileID: 1048473342} m_Layer: 0 m_Name: Camera m_TagString: Untagged @@ -19661,20 +19659,6 @@ Transform: m_Father: {fileID: 1972710420} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &1048473339 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1048473337} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0fb2c71947a1f324288916d506ccb34d, type: 3} - m_Name: - m_EditorClassIdentifier: - speedH: 2 - speedV: 2 --- !u!81 &1048473340 AudioListener: m_ObjectHideFlags: 0 @@ -19682,7 +19666,7 @@ AudioListener: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1048473337} - m_Enabled: 0 + m_Enabled: 1 --- !u!20 &1048473341 Camera: m_ObjectHideFlags: 0 @@ -19734,28 +19718,6 @@ Camera: m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 ---- !u!64 &1048473342 -MeshCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1048473337} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 5 - m_Convex: 0 - m_CookingOptions: 30 - m_Mesh: {fileID: 0} --- !u!1001 &1049934794 PrefabInstance: m_ObjectHideFlags: 0 @@ -21566,7 +21528,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 7140281db71bac44f958af6e8c7f48b3, type: 3} propertyPath: m_LocalPosition.y - value: -100 + value: -80 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 7140281db71bac44f958af6e8c7f48b3, type: 3} propertyPath: m_LocalPosition.z @@ -34419,7 +34381,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 7140281db71bac44f958af6e8c7f48b3, type: 3} propertyPath: m_LocalPosition.y - value: 100 + value: 90 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 7140281db71bac44f958af6e8c7f48b3, type: 3} propertyPath: m_LocalPosition.z @@ -36751,7 +36713,6 @@ GameObject: - component: {fileID: 1972710417} - component: {fileID: 1972710422} - component: {fileID: 1972710421} - - component: {fileID: 1972710424} m_Layer: 0 m_Name: Ship m_TagString: Untagged @@ -36870,7 +36831,7 @@ Rigidbody: serializedVersion: 4 m_Mass: 1 m_Drag: 0 - m_AngularDrag: 0.05 + m_AngularDrag: 0.5 m_CenterOfMass: {x: 0, y: 0, z: 0} m_InertiaTensor: {x: 1, y: 1, z: 1} m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} @@ -36887,27 +36848,6 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 ---- !u!65 &1972710424 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1972710416} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} --- !u!1 &1973114532 stripped GameObject: m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 7140281db71bac44f958af6e8c7f48b3, type: 3} @@ -38014,7 +37954,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 7140281db71bac44f958af6e8c7f48b3, type: 3} propertyPath: m_LocalPosition.y - value: -150 + value: -140 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: 7140281db71bac44f958af6e8c7f48b3, type: 3} propertyPath: m_LocalPosition.z diff --git a/Assets/ShipControls.cs b/Assets/ShipControls.cs index e6188f4..c6b0edc 100755 --- a/Assets/ShipControls.cs +++ b/Assets/ShipControls.cs @@ -3,7 +3,7 @@ using UnityEngine; public class ShipControls : MonoBehaviour { public Camera m_camera; - Rigidbody m_ridigBody; + Rigidbody m_rigidBody; Vector3 m_initialPosition; Vector3 m_initialForce; @@ -16,12 +16,17 @@ public class ShipControls : MonoBehaviour { float m_stabliseMag; ForceMode m_forceMode; + // Camera Controls + float m_mouseH = 0.5f; + float m_mouseV = 0.5f; + float m_camYaw = 0.0f; + float m_camPitch = 0.0f; void Start() { Cursor.lockState = CursorLockMode.Locked; - m_ridigBody = GetComponent(); + m_rigidBody = GetComponent(); - m_initialPosition = m_ridigBody.transform.position; + m_initialPosition = m_rigidBody.transform.position; m_initialForce = Vector3.zero; m_thrust = Vector3.zero; @@ -32,6 +37,7 @@ public class ShipControls : MonoBehaviour { m_stabliseMag = 75.0f; m_forceMode = ForceMode.Acceleration; + // m_rigidBody.freezeRotation = true; } void Update() { @@ -39,7 +45,8 @@ public class ShipControls : MonoBehaviour { m_thrust = getThrust(); m_strafe = getStrafe(); - Debug.Log(m_thrust); + // if (m_thrust != Vector3.zero) + // Debug.Log(m_thrust); // do everything else input related on every frame too processInput(); @@ -47,18 +54,16 @@ public class ShipControls : MonoBehaviour { void FixedUpdate() { // // the ship being propelled forward - m_ridigBody.AddForce(m_thrust, m_forceMode); + m_rigidBody.AddForce(m_thrust, m_forceMode); // moving side to side - m_ridigBody.AddForce(m_strafe, m_forceMode); - - // add relative force? + m_rigidBody.AddRelativeForce(m_strafe, m_forceMode); // rotating towards the camera's orientation // not being done by a force because of strange behaviour // needs investigation float step = m_stabliseMag * Time.fixedDeltaTime; - m_ridigBody.rotation = Quaternion.RotateTowards(transform.rotation, m_camera.transform.rotation, step); + m_rigidBody.rotation = Quaternion.RotateTowards(transform.rotation, m_camera.transform.rotation, step); } Vector3 getThrust() { @@ -67,8 +72,9 @@ public class ShipControls : MonoBehaviour { return m_camera.transform.TransformDirection(Vector3.forward) * m_thrustMag; // brake - if (Input.GetMouseButton(1)) - return m_camera.transform.TransformDirection(Vector3.back) * m_thrustMag; + if (Input.GetMouseButton(1)) { + return m_rigidBody.velocity.normalized * -1f * m_thrustMag; + } return Vector3.zero; } @@ -80,20 +86,22 @@ public class ShipControls : MonoBehaviour { Vector3 strafe = new Vector3(0.0f, 0.0f, 0.0f); if (Input.GetKey(KeyCode.W)) - strafe += m_strafeMag * m_camera.transform.TransformDirection(Vector3.up); + strafe += m_strafeMag * Vector3.up; if (Input.GetKey(KeyCode.S)) - strafe += m_strafeMag * m_camera.transform.TransformDirection(Vector3.down); + strafe += m_strafeMag * Vector3.down; if (Input.GetKey(KeyCode.A)) - strafe += m_strafeMag * m_camera.transform.TransformDirection(Vector3.left); + strafe += m_strafeMag * Vector3.left; if (Input.GetKey(KeyCode.D)) - strafe += m_strafeMag * m_camera.transform.TransformDirection(Vector3.right); + strafe += m_strafeMag * Vector3.right; return strafe; } void processInput() { + updateCamera(); + if (Input.GetKey(KeyCode.Space)) Respawn(); @@ -105,28 +113,50 @@ public class ShipControls : MonoBehaviour { m_forceMode = ForceMode.Force; if (Input.GetKey(KeyCode.Alpha4)) m_forceMode = ForceMode.VelocityChange; + + if (Input.GetKey(KeyCode.F10)) + Application.Quit(); } void Respawn() { m_thrust = new Vector3(0.0f, 0.0f, 0.0f); transform.position = m_initialPosition; - m_ridigBody.transform.forward = m_initialForce; - m_ridigBody.velocity = new Vector3(0f, 0f, 0f); - m_camera.transform.eulerAngles = Vector3.forward; + m_rigidBody.transform.forward = m_initialForce; + m_rigidBody.velocity = new Vector3(0f, 0f, 0f); + m_camera.transform.eulerAngles = Vector3.zero; + m_camYaw = 0f; + m_camPitch = 0f; + } + + void updateCamera() { + m_camYaw += m_mouseH * Input.GetAxis("Mouse X"); + m_camPitch -= m_mouseV * Input.GetAxis("Mouse Y"); + m_camera.transform.eulerAngles = new Vector3(m_camPitch, m_camYaw, 0.0f); } void OnDrawGizmosSelected() { - Gizmos.color = Color.red; - Vector3 direction = m_camera.transform.TransformDirection(Vector3.up) * 10; - Gizmos.DrawRay(transform.position, direction); + if (Application.isPlaying == false) + return; - Gizmos.color = Color.green; + Gizmos.color = Color.red; Vector3 right = m_camera.transform.TransformDirection(Vector3.right) * 10; Gizmos.DrawRay(transform.position, right); - Gizmos.color = Color.yellow; + Gizmos.color = Color.green; + Vector3 direction = m_camera.transform.TransformDirection(Vector3.up) * 10; + Gizmos.DrawRay(transform.position, direction); + + Gizmos.color = Color.blue; Vector3 forward = m_camera.transform.TransformDirection(Vector3.forward) * 10; Gizmos.DrawRay(transform.position, forward); + + Gizmos.color = Color.yellow; + Vector3 velocity = m_rigidBody.velocity; + Gizmos.DrawRay(transform.position, velocity); + + Gizmos.color = Color.cyan; + Vector3 thrust = m_thrust; + Gizmos.DrawRay(transform.position, thrust); } } \ No newline at end of file