Files
Unity20GameJam/Assets/Scripts/ViewAlignmentDetector.cs
Misaki 14886090c8 Added DOTween;
Added ViewAlignmentDetector;

Fixed Object.FindObjectOfType<T>() warning;
2025-11-08 14:05:49 +09:00

31 lines
1.1 KiB
C#

using UnityEngine;
public class ViewAlignmentDetector
{
private readonly Transform _observer;
private readonly Transform _target;
private readonly Transform _viewPoint;
public float positionErrorMargin = 1.0f;
public float viewErrorMargin = 0.1f;
public ViewAlignmentDetector(Transform observer, Transform target, Transform viewPoint)
{
_observer = observer;
_target = target;
_viewPoint = viewPoint;
}
public bool IsAligned()
{
Vector3 directionToTarget = (_target.position - _observer.position).normalized;
Vector3 directionToViewPoint = (_viewPoint.position - _observer.position).normalized;
float distanceToTarget = Vector3.Distance(_observer.position, _target.position);
float distanceToViewPoint = Vector3.Distance(_observer.position, _viewPoint.position);
bool isDirectionAligned = Vector3.Dot(directionToTarget, directionToViewPoint) >= (1 - viewErrorMargin);
bool isDistanceAligned = Mathf.Abs(distanceToTarget - distanceToViewPoint) <= positionErrorMargin;
return isDirectionAligned && isDistanceAligned;
}
}