diff --git a/Assets/Scenes/MovementTesting.unity b/Assets/Scenes/MovementTesting.unity index 4f141ab..b7a90ff 100644 --- a/Assets/Scenes/MovementTesting.unity +++ b/Assets/Scenes/MovementTesting.unity @@ -336,6 +336,7 @@ GameObject: - component: {fileID: 275207158} - component: {fileID: 275207159} - component: {fileID: 275207161} + - component: {fileID: 275207163} - component: {fileID: 275207162} m_Layer: 0 m_Name: Alive @@ -397,7 +398,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _ReffrenceHub: {fileID: 1551772761} - moveType: 1 _hoverForceMode: 3 _moveForceMode: 2 _characterDrag: 10 @@ -435,10 +435,10 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: characterRigidbody: {fileID: 1551772756} - moveSpeed: 70 - airControlStrength: 70 - crouchSpeedDecrease: 0 - sprintSpeedIncrease: 0 + moveSpeed: 1 + airControlStrength: 0.1 + crouchSpeedDecrease: 2 + sprintSpeedIncrease: 1.5 ladderClimbingSpeed: 0 jumpPower: 0 crouchHeight: 0 @@ -486,6 +486,19 @@ MonoBehaviour: enteredLadderFromTop: 0 topLadder: {fileID: 0} bottomLadder: {fileID: 0} +--- !u!114 &275207163 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 275207155} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 68e69a066cfcd3b45b91db0b5825eea3, type: 3} + m_Name: + m_EditorClassIdentifier: + _reffrenceHub: {fileID: 0} --- !u!1 &351313843 GameObject: m_ObjectHideFlags: 0 @@ -3072,7 +3085,6 @@ GameObject: - component: {fileID: 1551772752} - component: {fileID: 1551772758} - component: {fileID: 1551772756} - - component: {fileID: 1551772762} m_Layer: 0 m_Name: Player_Ghost m_TagString: Untagged @@ -3171,29 +3183,6 @@ MonoBehaviour: playerInputReceiver: {fileID: 1551772752} characterHover: {fileID: 275207159} characterStateChanger: {fileID: 275207161} ---- !u!114 &1551772762 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1551772751} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 11afecc1cbbd8e8449477483a5577cb0, type: 3} - m_Name: - m_EditorClassIdentifier: - characterState: 0 - movementStates: 0 - ceilingDetected: 0 - eligibleForStep: 0 - onLadder: 0 - topOnLadder: 0 - bottomOnLadder: 0 - enteredLadderFromBottom: 0 - enteredLadderFromTop: 0 - topLadder: {fileID: 0} - bottomLadder: {fileID: 0} --- !u!1 &1591108313 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Player/Character/CharacterReffrenceHub.cs b/Assets/Scripts/Player/Character/CharacterReffrenceHub.cs index cbbfc80..69eb95d 100644 --- a/Assets/Scripts/Player/Character/CharacterReffrenceHub.cs +++ b/Assets/Scripts/Player/Character/CharacterReffrenceHub.cs @@ -4,7 +4,9 @@ namespace TTTSC.Player.Character { public class CharacterReffrenceHub : MonoBehaviour { + [Header("-----------Misc------------")] public Rigidbody characterRigidbody; + [Header("----------Scripts-----------")] public PlayerStateEnforcer playerStateEnforcrer; public PlayerStateMachine playerStateMachine; public Controller.CharacterMovementConfig characterMovementConfig; diff --git a/Assets/Scripts/Player/Character/Controller/Alive/CharacterMover.cs b/Assets/Scripts/Player/Character/Controller/Alive/CharacterMover.cs index d15aa6b..64dde99 100644 --- a/Assets/Scripts/Player/Character/Controller/Alive/CharacterMover.cs +++ b/Assets/Scripts/Player/Character/Controller/Alive/CharacterMover.cs @@ -15,8 +15,6 @@ namespace TTTSC.Player.Character.Controller.Alive private CharacterHover _characterHover; private PlayerInputReceiver _playerInputReceiver; private Rigidbody _characterRigidbody; - [SerializeField, Tooltip("use Velocity mode for testing interactable objects + other things like pickackable items")] - private MoveTypes moveType; [SerializeField] private ForceModes _hoverForceMode, _moveForceMode; @@ -52,12 +50,6 @@ namespace TTTSC.Player.Character.Controller.Alive #endregion - enum MoveTypes - { - Velocity, - AddForce - } - enum ForceModes { force, @@ -69,10 +61,6 @@ namespace TTTSC.Player.Character.Controller.Alive private void FixedUpdate() { - - //if (_characterRigidbody.velocity.x != 0f || _characterRigidbody.velocity.z != 0f) - //Debug.Log("character speed x: " + _characterRigidbody.velocity.x + "character speed z:" + _characterRigidbody.velocity.z); - Vector3 downVector = transform.TransformDirection(Vector3.down); Drag(); @@ -80,18 +68,13 @@ namespace TTTSC.Player.Character.Controller.Alive switch (_characterStateMachine.characterState) { case CharacterStateMachine.CharacterStates.Grounded: - switch (moveType) - { - case MoveTypes.Velocity: - VelocityChangeMover(); - break; - case MoveTypes.AddForce: - AddForceMover(); - break; - } + _characterDrag = 10; + + Move(); break; case CharacterStateMachine.CharacterStates.InAir: + _characterDrag = 0; InAirMove(); break; @@ -101,38 +84,6 @@ namespace TTTSC.Player.Character.Controller.Alive _characterRigidbody.AddForce(_characterHover.hoverForces * downVector, ForceMode.VelocityChange); - - - } - - - private void VelocityChangeMover() - { - - Vector3 movement = _characterMovementConfig.moveSpeed * _moveDirection.x * Time.deltaTime * transform.right + _characterRigidbody.velocity.y * transform.up + _characterMovementConfig.moveSpeed * _moveDirection.y * Time.deltaTime * transform.forward; - _characterRigidbody.velocity = movement; - } - - private void AddForceMover() - { - - - switch (_characterStateMachine.movementStates) - { - case CharacterStateMachine.MovementStates.Walking: - Walk(); - break; - - case CharacterStateMachine.MovementStates.Crouching: - - break; - - case CharacterStateMachine.MovementStates.Sprinting: - - break; - } - - } private void Drag() @@ -145,37 +96,73 @@ namespace TTTSC.Player.Character.Controller.Alive _characterRigidbody.velocity = newVelocity; } - private void Walk() + private void Move() { - Vector3 movement = _characterMovementConfig.moveSpeed * _moveDirection.x * Time.deltaTime * transform.right + _characterMovementConfig.moveSpeed * _moveDirection.y * Time.deltaTime * transform.forward; - if (_characterStateMachine.characterState == CharacterStateMachine.CharacterStates.Grounded) - switch (_moveForceMode) - { - case ForceModes.force: - _characterRigidbody.AddForce(movement, ForceMode.Force); - break; - case ForceModes.acceleration: - _characterRigidbody.AddForce(movement, ForceMode.Acceleration); - break; - case ForceModes.impulse: - _characterRigidbody.AddForce(movement.normalized, ForceMode.Impulse); - break; - case ForceModes.velocityChange: - _characterRigidbody.AddForce(movement.normalized, ForceMode.VelocityChange); - break; - } + switch (_characterStateMachine.movementStates) + { + case CharacterStateMachine.MovementStates.Walking: + Walking(); + break; + + case CharacterStateMachine.MovementStates.Crouching: + Crouching(); + break; + + case CharacterStateMachine.MovementStates.Sprinting: + Sprinting(); + break; + } + + } private void InAirMove() { - Vector3 movement = _characterMovementConfig.airControlStrength * _moveDirection.x * Time.deltaTime * transform.right + _characterMovementConfig.airControlStrength * _moveDirection.y * Time.deltaTime * transform.forward; + Vector3 movement = _moveDirection.x * Time.deltaTime * transform.right + _moveDirection.y * Time.deltaTime * transform.forward; + + Vector3 normalizedMovement = movement.normalized * _characterMovementConfig.airControlStrength; + + if (_characterStateMachine.movementStates == CharacterStateMachine.MovementStates.Walking) { - _characterRigidbody.AddForce(movement.normalized, ForceMode.Impulse); + _characterRigidbody.AddForce(normalizedMovement, ForceMode.Impulse); } } + + private void Jump() + { + + } + + private void Walking() + { + Vector3 movement = _moveDirection.x * Time.deltaTime * transform.right + _moveDirection.y * Time.deltaTime * transform.forward; + + Vector3 normalizedMovement = movement.normalized * _characterMovementConfig.moveSpeed; + + _characterRigidbody.AddForce(normalizedMovement, ForceMode.Impulse); + } + + private void Crouching() + { + Vector3 movement = _moveDirection.x * Time.deltaTime * transform.right + _moveDirection.y * Time.deltaTime * transform.forward; + + Vector3 normalizedMovement = movement.normalized * _characterMovementConfig.moveSpeed / _characterMovementConfig.crouchSpeedDecrease; + + _characterRigidbody.AddForce(normalizedMovement, ForceMode.Impulse); + } + + private void Sprinting() + { + Vector3 movement = _moveDirection.x * Time.deltaTime * transform.right + _moveDirection.y * Time.deltaTime * transform.forward; + + Vector3 normalizedMovement = movement.normalized * _characterMovementConfig.moveSpeed * _characterMovementConfig.sprintSpeedIncrease; + + _characterRigidbody.AddForce(normalizedMovement, ForceMode.Impulse); + } + } } diff --git a/Assets/CharacterStateChanger.cs b/Assets/Scripts/Player/Character/Controller/CharacterStateChanger.cs similarity index 100% rename from Assets/CharacterStateChanger.cs rename to Assets/Scripts/Player/Character/Controller/CharacterStateChanger.cs diff --git a/Assets/CharacterStateChanger.cs.meta b/Assets/Scripts/Player/Character/Controller/CharacterStateChanger.cs.meta similarity index 100% rename from Assets/CharacterStateChanger.cs.meta rename to Assets/Scripts/Player/Character/Controller/CharacterStateChanger.cs.meta diff --git a/Assets/Scripts/Player/Character/Controller/CharacterStateEnforcer.cs b/Assets/Scripts/Player/Character/Controller/CharacterStateEnforcer.cs new file mode 100644 index 0000000..3ba4728 --- /dev/null +++ b/Assets/Scripts/Player/Character/Controller/CharacterStateEnforcer.cs @@ -0,0 +1,48 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace TTTSC.Player.Character.Controller +{ + public class CharacterStateEnforcer : MonoBehaviour + { + [SerializeField] + private CharacterReffrenceHub _reffrenceHub; + + private CharacterHover _characterHover; + private CharacterStateMachine _characterStateMachine; + + + // Start is called before the first frame update + void Start() + { + _characterHover = GetComponent(); + _characterStateMachine = GetComponent(); + } + + // Update is called once per frame + void FixedUpdate() + { + switch (_characterStateMachine.movementStates) + { + default: + CharacterDefault(); + break; + case CharacterStateMachine.MovementStates.Crouching: + CharacterCrouch(); + break; + } + } + + private void CharacterCrouch() + { + _characterHover.hoverHight = 1f; + } + + private void CharacterDefault() + { + _characterHover.hoverHight = 1.4f; + } + } +} + diff --git a/Assets/Scripts/Player/Character/Controller/CharacterStateEnforcer.cs.meta b/Assets/Scripts/Player/Character/Controller/CharacterStateEnforcer.cs.meta new file mode 100644 index 0000000..5f510d0 --- /dev/null +++ b/Assets/Scripts/Player/Character/Controller/CharacterStateEnforcer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 68e69a066cfcd3b45b91db0b5825eea3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Player/Character/Controller/PlayerInputReceiver.cs b/Assets/Scripts/Player/Character/Controller/PlayerInputReceiver.cs index 0def65f..a577294 100644 --- a/Assets/Scripts/Player/Character/Controller/PlayerInputReceiver.cs +++ b/Assets/Scripts/Player/Character/Controller/PlayerInputReceiver.cs @@ -4,7 +4,6 @@ using UnityEngine.InputSystem; namespace TTTSC.Player.Character.Controller { - [RequireComponent(typeof(CharacterStateMachine))] public class PlayerInputReceiver : MonoBehaviour { private float _lookX, _lookY;