Update
This commit is contained in:
24
Assets/Scripts/Camera Controller/CameraCollisionHandler.cs
Normal file
24
Assets/Scripts/Camera Controller/CameraCollisionHandler.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user