Files
BABA_YAGA/Assets/Scripts/Camera Controller/CameraCollisionHandler.cs

25 lines
848 B
C#
Raw Normal View History

2026-03-27 12:08:16 +07:00
using UnityEngine;
namespace OnlyScove.Scripts
{
[System.Serializable]
public class CameraCollisionHandler
{
[Header("Collision Settings")]
[SerializeField] private LayerMask collisionLayers;
[SerializeField] private float cameraRadius = 0.2f;
public float CheckCollision(Vector3 focusPosition, Quaternion currentRotation, float targetDistance, float minimumDistanceAllowed)
{
RaycastHit hit;
Vector3 rayStart = focusPosition;
Vector3 rayDirection = currentRotation * Vector3.back;
if (Physics.SphereCast(rayStart, cameraRadius, rayDirection, out hit, targetDistance, collisionLayers))
{
return Mathf.Max(minimumDistanceAllowed, hit.distance - 0.1f);
}
return targetDistance;
}
}
}