< Summary

Class:FreeMovementController
Assembly:MainScripts
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/CharacterController/FreeMovementController.cs
Covered lines:6
Uncovered lines:32
Coverable lines:38
Total lines:86
Line coverage:15.7% (6 of 38)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
FreeMovementController()0%110100%
Awake()0%110100%
IsActive()0%2100%
SetActive(...)0%2100%
CalculateMovement()0%2100%
FreeMovement()0%1101000%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/CharacterController/FreeMovementController.cs

#LineLine coverage
 1using DCL.Helpers;
 2using System.Collections;
 3using System.Collections.Generic;
 4using UnityEngine;
 5
 6public class FreeMovementController : MonoBehaviour
 7{
 8
 9    [Header("Movement")]
 37010    public float groundCheckExtraDistance = 0.25f;
 37011    public float movementSpeed = 11f;
 37012    public float runningSpeedMultiplier = 0.36f;
 13
 14    [Header("InputActions")]
 15    public InputAction_Hold sprintAction;
 16
 17    [System.NonSerialized] public CharacterController characterController;
 18
 19    bool isSprinting = false;
 20    bool isActive;
 21
 37022    float deltaTime = 0.032f;
 23
 37024    Vector3 velocity = Vector3.zero;
 25
 026    private Vector3NullableVariable characterForward => CommonScriptableObjects.characterForward;
 27
 028    private Vector3Variable cameraForward => CommonScriptableObjects.cameraForward;
 029    private Vector3Variable cameraRight => CommonScriptableObjects.cameraRight;
 30
 31    [SerializeField] private InputAction_Measurable characterYAxis;
 32    [SerializeField] private InputAction_Measurable characterXAxis;
 33
 29034    private void Awake() { characterController = GetComponent<CharacterController>(); }
 35
 036    public bool IsActive() { return isActive; }
 37
 038    public void SetActive(bool _isActive) { isActive = _isActive; }
 39
 040    public Vector3 CalculateMovement() { return FreeMovement(); }
 41
 42    Vector3 FreeMovement()
 43    {
 044        velocity.x = 0f;
 045        velocity.z = 0f;
 046        velocity.y = 0;
 47
 048        if (characterController.enabled)
 49        {
 050            var speed = movementSpeed * (isSprinting ? runningSpeedMultiplier : 1f);
 51
 052            transform.forward = characterForward.Get().Value;
 53
 054            var xzPlaneForward = Vector3.Scale(cameraForward.Get(), new Vector3(1, 0, 1));
 055            var xzPlaneRight = Vector3.Scale(cameraRight.Get(), new Vector3(1, 0, 1));
 56
 057            Vector3 forwardTarget = Vector3.zero;
 58
 059            if (characterYAxis.GetValue() > 0)
 060                forwardTarget += xzPlaneForward;
 061            if (characterYAxis.GetValue() < 0)
 062                forwardTarget -= xzPlaneForward;
 63
 064            if (characterXAxis.GetValue() > 0)
 065                forwardTarget += xzPlaneRight;
 066            if (characterXAxis.GetValue() < 0)
 067                forwardTarget -= xzPlaneRight;
 68
 69
 070            if (Input.GetKey(KeyCode.Space))
 071                forwardTarget += Vector3.up;
 072            else if (Input.GetKey(KeyCode.X))
 073                forwardTarget += Vector3.down;
 74
 075            forwardTarget.Normalize();
 76
 77
 078            velocity += forwardTarget * speed;
 079            CommonScriptableObjects.playerUnityEulerAngles.Set(transform.eulerAngles);
 80
 081            characterController.Move(velocity * deltaTime);
 82        }
 83
 084        return velocity;
 85    }
 86}