Merge branch 'krazerleo/core/1' of https://gitea.gavt45.ru/gav/real-shooter into enikeev/dev/2
This commit is contained in:
@ -5,7 +5,7 @@ using Unity.Barracuda;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
|
||||
using static scr_Models;
|
||||
using static scr_Models;
|
||||
|
||||
public class scr_CharacterController : MonoBehaviour
|
||||
{
|
||||
@ -17,7 +17,7 @@ public class scr_CharacterController : MonoBehaviour
|
||||
public Vector2 input_Movement;
|
||||
[HideInInspector]
|
||||
public Vector2 input_View;
|
||||
|
||||
|
||||
private Vector3 newCameraRotation;
|
||||
private Vector3 newCharacterRotation;
|
||||
|
||||
@ -25,14 +25,14 @@ public class scr_CharacterController : MonoBehaviour
|
||||
public Transform cameraHolder;
|
||||
public Transform feetTransform;
|
||||
|
||||
[Header("Settings")]
|
||||
[Header("Settings")]
|
||||
public PlayerSettingsModel playerSettings;
|
||||
|
||||
public float ViewClampYMin = -70;
|
||||
public float ViewClampYMax = 80;
|
||||
public LayerMask playerMask;
|
||||
|
||||
[Header("Gravity")]
|
||||
|
||||
[Header("Gravity")]
|
||||
public float gravityAmount;
|
||||
public float gravityMin;
|
||||
private float playerGravity;
|
||||
@ -40,14 +40,14 @@ public class scr_CharacterController : MonoBehaviour
|
||||
public Vector3 jumpingForce;
|
||||
private Vector3 jumpingForceVelocity;
|
||||
|
||||
[Header("Stance")]
|
||||
[Header("Stance")]
|
||||
public PlayerStance playerStance;
|
||||
public float playerStanceSmoothing;
|
||||
public CharacterStance playerStandStance;
|
||||
public CharacterStance playerCrouchStance;
|
||||
public CharacterStance playerProneStance;
|
||||
private float stanceCheckErrorMargin = 0.05f;
|
||||
|
||||
|
||||
private float cameraHeight;
|
||||
private float cameraHeightVelocity;
|
||||
|
||||
@ -77,13 +77,13 @@ public class scr_CharacterController : MonoBehaviour
|
||||
defaultInput.Character.Movement.performed += e => input_Movement = e.ReadValue<Vector2>();
|
||||
defaultInput.Character.View.performed += e => input_View = e.ReadValue<Vector2>();
|
||||
defaultInput.Character.Jump.performed += e => Jump();
|
||||
|
||||
|
||||
defaultInput.Character.Crouch.performed += e => Crouch();
|
||||
defaultInput.Character.Prone.performed += e => Prone();
|
||||
|
||||
|
||||
defaultInput.Character.Sprint.performed += e => ToggleSprint();
|
||||
defaultInput.Character.SprintReleased.performed += e => StopSprint();
|
||||
|
||||
|
||||
defaultInput.Enable();
|
||||
|
||||
newCameraRotation = cameraHolder.localRotation.eulerAngles;
|
||||
@ -134,10 +134,10 @@ public class scr_CharacterController : MonoBehaviour
|
||||
{
|
||||
newCharacterRotation.y += playerSettings.ViewXSensetivity * (playerSettings.ViewXInverted ? -input_View.x : input_View.x) * Time.deltaTime;
|
||||
transform.localRotation = Quaternion.Euler(newCharacterRotation);
|
||||
|
||||
|
||||
newCameraRotation.x += playerSettings.ViewYSensetivity * (playerSettings.ViewYInverted ? input_View.y : -input_View.y) * Time.deltaTime;
|
||||
newCameraRotation.x = Mathf.Clamp(newCameraRotation.x, ViewClampYMin, ViewClampYMax);
|
||||
|
||||
|
||||
cameraHolder.localRotation = Quaternion.Euler(newCameraRotation);
|
||||
}
|
||||
|
||||
@ -159,18 +159,18 @@ public class scr_CharacterController : MonoBehaviour
|
||||
verticalSpeed = playerSettings.RunningForwardSpeed;
|
||||
horizontalSpeed = playerSettings.RunningStrafeSpeed;
|
||||
}
|
||||
|
||||
|
||||
// Effectors
|
||||
|
||||
if (!characterController.isGrounded)
|
||||
{
|
||||
playerSettings.SpeedEffector = playerSettings.FallingSpeedEffector;
|
||||
}
|
||||
else if(playerStance == PlayerStance.Crouch)
|
||||
else if (playerStance == PlayerStance.Crouch)
|
||||
{
|
||||
playerSettings.SpeedEffector = playerSettings.CrouchSpeedEffector;
|
||||
}
|
||||
else if(playerStance == PlayerStance.Prone)
|
||||
}
|
||||
else if (playerStance == PlayerStance.Prone)
|
||||
{
|
||||
playerSettings.SpeedEffector = playerSettings.ProneSpeedEffector;
|
||||
}
|
||||
@ -188,12 +188,12 @@ public class scr_CharacterController : MonoBehaviour
|
||||
|
||||
verticalSpeed *= playerSettings.SpeedEffector;
|
||||
horizontalSpeed *= playerSettings.SpeedEffector;
|
||||
|
||||
|
||||
newMovementSpeed = Vector3.SmoothDamp(newMovementSpeed,
|
||||
new Vector3(horizontalSpeed * input_Movement.x * Time.deltaTime,
|
||||
0, verticalSpeed * input_Movement.y * Time.deltaTime),
|
||||
ref newMovementSpeedVelocity, characterController.isGrounded ? playerSettings.MovementSmoothing : playerSettings.FallingSmoothing);
|
||||
|
||||
|
||||
var MovementSpeed = transform.TransformDirection(newMovementSpeed);
|
||||
|
||||
if (playerGravity > gravityMin)
|
||||
@ -208,7 +208,7 @@ public class scr_CharacterController : MonoBehaviour
|
||||
|
||||
MovementSpeed.y += playerGravity;
|
||||
MovementSpeed += jumpingForce * Time.deltaTime;
|
||||
|
||||
|
||||
characterController.Move(MovementSpeed);
|
||||
}
|
||||
|
||||
@ -229,7 +229,7 @@ public class scr_CharacterController : MonoBehaviour
|
||||
{
|
||||
stanceHeight = playerProneStance.CameraHeight;
|
||||
}
|
||||
|
||||
|
||||
cameraHeight = Mathf.SmoothDamp(cameraHolder.localPosition.y, stanceHeight, ref cameraHeightVelocity, playerStanceSmoothing);
|
||||
|
||||
cameraHolder.localPosition = new Vector3(cameraHolder.localPosition.x, cameraHeight, cameraHolder.localPosition.z);
|
||||
@ -240,7 +240,7 @@ public class scr_CharacterController : MonoBehaviour
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (playerStance == PlayerStance.Crouch)
|
||||
{
|
||||
if (StanceCheck(playerStandStance.StanceCollider.height))
|
||||
@ -250,7 +250,7 @@ public class scr_CharacterController : MonoBehaviour
|
||||
playerStance = PlayerStance.Stand;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Jump
|
||||
jumpingForce = Vector3.up * playerSettings.JumpingHeight;
|
||||
playerGravity = 0;
|
||||
@ -283,8 +283,8 @@ public class scr_CharacterController : MonoBehaviour
|
||||
{
|
||||
var start = new Vector3(feetTransform.position.x, feetTransform.position.y + characterController.radius + stanceCheckErrorMargin, feetTransform.position.z);
|
||||
var end = new Vector3(feetTransform.position.x, feetTransform.position.y - characterController.radius - stanceCheckErrorMargin + stanceCheckheight, feetTransform.position.z);
|
||||
|
||||
|
||||
|
||||
|
||||
return Physics.CheckCapsule(start, end, characterController.radius, playerMask);
|
||||
}
|
||||
|
||||
@ -297,7 +297,7 @@ public class scr_CharacterController : MonoBehaviour
|
||||
}
|
||||
isSprinting = !isSprinting;
|
||||
}
|
||||
|
||||
|
||||
private void StopSprint()
|
||||
{
|
||||
if (playerSettings.SprintingHold)
|
||||
@ -305,5 +305,5 @@ public class scr_CharacterController : MonoBehaviour
|
||||
isSprinting = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user