Example #1
0
        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);
        }
Example #2
0
        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);
        }