From 851ee23092287c2cecf55ad3979dac10f12da106 Mon Sep 17 00:00:00 2001 From: KOSMOGOR Date: Thu, 24 Apr 2025 14:02:23 +0300 Subject: [PATCH] fix: player now jumps normally --- Assets/Prefabs/Player.prefab | 36 +++++++++++++++++++++---- Assets/Scripts/Player/GroundDetector.cs | 7 ++--- Assets/Scripts/Player/PlayerMovement.cs | 3 --- 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/Assets/Prefabs/Player.prefab b/Assets/Prefabs/Player.prefab index f3d6052..a8e85b2 100644 --- a/Assets/Prefabs/Player.prefab +++ b/Assets/Prefabs/Player.prefab @@ -66,6 +66,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f16350ecb17bc8e49a8e9b8124ff2db2, type: 3} m_Name: m_EditorClassIdentifier: + groundMask: + serializedVersion: 2 + m_Bits: 64 --- !u!1 &1084592339258698369 GameObject: m_ObjectHideFlags: 0 @@ -247,6 +250,7 @@ GameObject: - component: {fileID: 1892283461227420150} - component: {fileID: 7857072580326449292} - component: {fileID: 1437407097293080706} + - component: {fileID: 8985924327125149956} - component: {fileID: 397169322893853401} - component: {fileID: 1198108720433238150} - component: {fileID: 3263211181679880648} @@ -353,6 +357,33 @@ CharacterController: m_SkinWidth: 0.08 m_MinMoveDistance: 0.001 m_Center: {x: 0, y: 0, z: 0} +--- !u!54 &8985924327125149956 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9016311960615966999} + serializedVersion: 4 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + 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} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 80 + m_CollisionDetection: 0 --- !u!114 &397169322893853401 MonoBehaviour: m_ObjectHideFlags: 0 @@ -371,11 +402,6 @@ MonoBehaviour: crouchHeightMultiplier: 0.5 jumpForce: 10 gravityMultiplier: 1 - legsPosition: {fileID: 2033391409425088012} - legsRadius: 0.2 - groundMask: - serializedVersion: 2 - m_Bits: 64 isCrouching: 0 gravityVelocity: {x: 0, y: 0, z: 0} grounded: 0 diff --git a/Assets/Scripts/Player/GroundDetector.cs b/Assets/Scripts/Player/GroundDetector.cs index f85e015..83837fc 100644 --- a/Assets/Scripts/Player/GroundDetector.cs +++ b/Assets/Scripts/Player/GroundDetector.cs @@ -2,13 +2,14 @@ using UnityEngine; public class GroundDetector : MonoBehaviour { + public LayerMask groundMask; public bool onGround { get; private set; } = false; - void OnTriggerEnter(Collider other) { - if (other.CompareTag("Ground")) onGround = true; + public void OnTriggerEnter(Collider other) { + if ((1 << other.gameObject.layer & groundMask) != 0) onGround = true; } void OnTriggerStay(Collider other) { OnTriggerEnter(other); } void OnTriggerExit(Collider other) { - if (other.CompareTag("Ground")) onGround = false; + if ((1 << other.gameObject.layer & groundMask) != 0) onGround = false; } } diff --git a/Assets/Scripts/Player/PlayerMovement.cs b/Assets/Scripts/Player/PlayerMovement.cs index 2ba3731..5348631 100644 --- a/Assets/Scripts/Player/PlayerMovement.cs +++ b/Assets/Scripts/Player/PlayerMovement.cs @@ -10,9 +10,6 @@ public class PlayerMovement : MonoBehaviour [Header("Vertical movement")] public float jumpForce = 1f; public float gravityMultiplier = 1f; - public Transform legsPosition; - public float legsRadius = 0.5f; - public LayerMask groundMask; [Header("Debug info")] [SerializeField] bool isCrouching = false;