public float?IsWithinRayDistance(out RaycastHit hit) { float?hitDistance = null; _rayColor = Color.green; if (Physics.Raycast(transform.position, RayDirection.ToVector3() /* GetRayDirectionVector() */, out hit, MaxRayDistance, LayerMask, QueryTriggerInteraction.Ignore)) { if (hit.distance >= MinRayDistance) { hitDistance = hit.distance; _rayColor = Color.red; if (IsTrigger && !proximityEnteredTriggered) { proximityEnteredTriggered = true; OnProximityEntered.Invoke(); } } else { proximityEnteredTriggered = false; } } else { proximityEnteredTriggered = false; } return(hitDistance); }
public float?IsWithinRayDistance(out NavMeshHit hit) { float?hitDistance = null; if (NavMesh.SamplePosition(transform.position, out hit, MaxRayDistance, NavMesh.AllAreas)) { m_rayColor = Color.red; hitDistance = hit.distance; if (IsTrigger && !proximityEnteredTriggered) { proximityEnteredTriggered = true; OnProximityEntered.Invoke(); } } else { proximityEnteredTriggered = false; } return(hitDistance); }