diff --git a/Assets/Scenes/Demos/UI-UX_Demos.unity b/Assets/Scenes/Demos/UI-UX_Demos.unity index d4f3b03..84138ed 100644 --- a/Assets/Scenes/Demos/UI-UX_Demos.unity +++ b/Assets/Scenes/Demos/UI-UX_Demos.unity @@ -470,9 +470,10 @@ GameObject: - component: {fileID: 944325789} - component: {fileID: 944325788} - component: {fileID: 944325787} + - component: {fileID: 944325792} - component: {fileID: 944325786} m_Layer: 0 - m_Name: Capsule + m_Name: Player Capsule m_TagString: Player m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -487,11 +488,15 @@ MonoBehaviour: m_GameObject: {fileID: 944325785} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 13c04f815bd0149499ce2ee3eb3a39b7, type: 3} + m_Script: {fileID: 11500000, guid: 22ae0d31c49624d4fb9990f2f5f72fd9, type: 3} m_Name: m_EditorClassIdentifier: - speed: 5 - gravity: -5 + pStats: {fileID: 944325792} + minimumWallrunningHeight: 1.75 + maximumDistanceToWall: 1 + minAngle: -15 + maxAngle: 30 + sensitivity: 105 --- !u!143 &944325787 CharacterController: m_ObjectHideFlags: 0 @@ -588,6 +593,18 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &944325792 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 944325785} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: addc2e37ff81c1b4989ec34b6150b4f7, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &951764787 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/PlayerScripts/PlayerMovement.cs b/Assets/Scripts/PlayerScripts/PlayerMovement.cs index 2fd5386..651f58d 100644 --- a/Assets/Scripts/PlayerScripts/PlayerMovement.cs +++ b/Assets/Scripts/PlayerScripts/PlayerMovement.cs @@ -5,7 +5,7 @@ using UnityEngine.UI; public class PlayerMovement : MonoBehaviour { - + //Scripts public PlayerStats pStats; @@ -24,6 +24,17 @@ public class PlayerMovement : MonoBehaviour //Bump physics float mass = 5.0F; // defines the character mass Vector3 impact = Vector3.zero; + + //Wallrunning + public float minimumWallrunningHeight = 1.75f; + public float maximumDistanceToWall = 0.75f; + private Vector3[] directions = new Vector3[]{ + Vector3.right, + Vector3.right+Vector3.forward, + Vector3.forward, + Vector3.left+Vector3.forward, + Vector3.left + }; //Camera Variables private Vector3 camRotation; @@ -100,7 +111,7 @@ public class PlayerMovement : MonoBehaviour Jump(); //Gravity - vel.y -= pStats.PlayerGrav * Time.deltaTime; + vel.y -= Gravity(); moveController.Move(vel); } @@ -174,5 +185,30 @@ public class PlayerMovement : MonoBehaviour } } - + //Gravity Function for adjusting y-vel due to wallrun/glide/etc + private float Gravity(){ + //Wallrunning + if (!moveController.isGrounded && Input.GetAxisRaw("Vertical") != 0) { //If in the air, and moving forward + RaycastHit hit; + Physics.Raycast(moveController.transform.position, Vector3.down, out hit); + if (hit.distance > minimumWallrunningHeight) //If distance from player to ground is > min ground height + { + foreach (Vector3 direction in directions) + { //For each direction we can wallrun in + Ray ray = new Ray(moveController.transform.position, direction); //Cast a Ray to see if we are by a wall + if (Physics.Raycast(ray, out hit, maximumDistanceToWall)) //If the ray hits a wallrun wall + { + if (hit.collider.tag == "WallRun") + { + return 0; //Don't fall down + } + } + } + } + } + //If gliding + //Go down slowly + //Else normal gravity + return pStats.PlayerGrav * Time.deltaTime; + } } diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 3f46eb4..1fa03ab 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -9,13 +9,13 @@ EditorUserSettings: value: 22424703114646680e0b0227036c6c111b07142f1f2b233e2867083debf42d flags: 0 RecentlyUsedScenePath-1: - value: 22424703114646680e0b0227036c7b151b180b65082d2b3f6004083ff6e92434e3fe33fba92f31352d1b + value: 22424703114646680e0b0227036c6b19021b1d192f2d2835633c133af6f9 flags: 0 RecentlyUsedScenePath-2: - value: 22424703114646680e0b0227036c721f0012152f223c15332827187df7ee3d2cfb + value: 22424703114646680e0b0227036c7b151b180b65082d2b3f6004083ff6e92434e3fe33fba92f31352d1b flags: 0 RecentlyUsedScenePath-3: - value: 22424703114646680e0b0227036c6b19021b1d192f2d2835633c133af6f9 + value: 22424703114646680e0b0227036c721f0012152f223c15332827187df7ee3d2cfb flags: 0 RecentlyUsedScenePath-4: value: 22424703114646680e0b0227036c7b151b180b6519016b0515163936efef2776f7e93ffdfe