From 706ad21ed1c3792bb1ef779e83aaa0044670456d Mon Sep 17 00:00:00 2001 From: Gregory Campbell Date: Sun, 1 Dec 2019 18:28:18 -0500 Subject: [PATCH] Replaced character controller with rigidbody and fixed all player controller script errors - player character can only spin in place --- Assets/Scenes/Test Scene.unity | 33 ++++++++++++++++-------------- Assets/Scripts/PlayerController.cs | 15 +++++++++----- 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/Assets/Scenes/Test Scene.unity b/Assets/Scenes/Test Scene.unity index 7618493..9291357 100644 --- a/Assets/Scenes/Test Scene.unity +++ b/Assets/Scenes/Test Scene.unity @@ -96,6 +96,7 @@ LightmapSettings: m_PVRFilteringAtrousPositionSigmaAO: 1 m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 m_LightingDataAsset: {fileID: 0} m_UseShadowmask: 1 --- !u!196 &4 @@ -199,6 +200,7 @@ MeshRenderer: m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -270,8 +272,9 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 705507993} m_Enabled: 1 - serializedVersion: 9 + serializedVersion: 10 m_Type: 1 + m_Shape: 0 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Intensity: 1 m_Range: 10 @@ -396,6 +399,7 @@ MeshRenderer: m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -477,10 +481,10 @@ MeshRenderer: m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 m_RenderingLayerMask: 1 m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 727f61c75f8320d4ab79aaf01ab76181, type: 2} + m_Materials: [] m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -542,24 +546,22 @@ MonoBehaviour: rotationSpeed: 20 pivot: {fileID: 1402695046} playerModel: {fileID: 615882415} ---- !u!143 &741217458 -CharacterController: +--- !u!54 &741217458 +Rigidbody: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741217452} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 serializedVersion: 2 - m_Height: 2 - m_Radius: 0.5 - m_SlopeLimit: 45 - m_StepOffset: 0.3 - m_SkinWidth: 0.08 - m_MinMoveDistance: 0.001 - m_Center: {x: 0, y: 0, z: 0} + m_Mass: 1 + m_Drag: 5 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 80 + m_CollisionDetection: 0 --- !u!1 &876326172 GameObject: m_ObjectHideFlags: 0 @@ -620,6 +622,7 @@ MeshRenderer: m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: diff --git a/Assets/Scripts/PlayerController.cs b/Assets/Scripts/PlayerController.cs index 6b66668..c68d7c5 100644 --- a/Assets/Scripts/PlayerController.cs +++ b/Assets/Scripts/PlayerController.cs @@ -9,7 +9,7 @@ using System.Collections; public class PlayerController : MonoBehaviour { - CharacterController characterController; + Rigidbody rb; public float speed; public float jumpSpeed; @@ -19,14 +19,19 @@ public class PlayerController : MonoBehaviour public GameObject playerModel; private bool extraJump = true; + private float distToGround; private Vector3 moveDirection; void Start() { - characterController = GetComponent(); + rb = GetComponent(); } - void Update() + bool IsGrounded(){ + return Physics.Raycast(transform.position, -Vector3.up, distToGround + 0.1f); + } + + void FixedUpdate() { float yStore = moveDirection.y; @@ -43,7 +48,7 @@ public class PlayerController : MonoBehaviour moveDirection.y = yStore; - if (characterController.isGrounded) + if (IsGrounded()) { extraJump = true; moveDirection.y = 0.0f; @@ -72,7 +77,7 @@ public class PlayerController : MonoBehaviour moveDirection.y = moveDirection.y + (Physics.gravity.y * gravity * Time.deltaTime); // Move the controller - characterController.Move(moveDirection * Time.deltaTime); + rb.AddForce(moveDirection * Time.deltaTime); //Move the player in different directions based on camera look direction //Need to switch to 'raw' when using keyboard