trouble-in-terror-town/Assets/Scripts/Player/Character/Controller/Alive/GroundCheck.cs
2022-04-22 15:27:05 +02:00

53 lines
1.9 KiB
C#

using UnityEngine;
namespace TTTSC.Player.Character.Controller.Misc
{
public class GroundCheck : MonoBehaviour
{
[SerializeField]
private Color _gizmoColor;
[SerializeField]
private Vector3 _groundCheckPosition;
[SerializeField]
private float _groundCheckRadius;
[SerializeField]
LayerMask _enviormentLayer;
private Collider[] enviormentDetected;
private void OnDrawGizmos()
{
Gizmos.color = _gizmoColor;
if (GetComponent<CharacterStateMachine>().movementType == CharacterStateMachine.MovementType.Crouch)
{
Gizmos.DrawSphere(gameObject.transform.position + _groundCheckPosition/2f, _groundCheckRadius);
}
else
{
Gizmos.DrawSphere(gameObject.transform.position + _groundCheckPosition, _groundCheckRadius);
}
}
void FixedUpdate()
{
if(GetComponent<CharacterStateMachine>().movementType == CharacterStateMachine.MovementType.Crouch)
{
enviormentDetected = Physics.OverlapSphere(gameObject.transform.position + _groundCheckPosition/2f, _groundCheckRadius, _enviormentLayer, QueryTriggerInteraction.Ignore);
}
else
{
enviormentDetected = Physics.OverlapSphere(gameObject.transform.position + _groundCheckPosition, _groundCheckRadius, _enviormentLayer, QueryTriggerInteraction.Ignore);
}
if (enviormentDetected.Length <= 0)
{
GetComponent<CharacterStateMachine>().characterState = CharacterStateMachine.CharacterState.InAir;
}
else
{
GetComponent<CharacterStateMachine>().characterState = CharacterStateMachine.CharacterState.OnGround;
}
}
}
}