示例#1
0
        /// <summary>
        /// Raycasts against all objects in isometric space.
        /// Note: Objects must have an IsoCollider attached to raycast against
        /// </summary>
        /// <param name="origin"></param>
        /// <param name="direction"></param>
        /// <param name="isoRaycastHit"></param>
        /// <param name="maxDistance"></param>
        /// <returns></returns>
        public static bool Raycast(Vector3 origin, Vector3 direction, out IsoRaycastHit isoRaycastHit,
                                   float maxDistance = Mathf.Infinity, int layermask = Physics.DefaultRaycastLayers)
        {
            RaycastHit raycastHit;

            if (Physics.Raycast(origin, direction, out raycastHit, maxDistance, layermask))
            {
                isoRaycastHit = IsoRaycastHit.FromRaycastHit(raycastHit);
                return(!isoRaycastHit.Equals(default(IsoRaycastHit)));
            }

            isoRaycastHit = default(IsoRaycastHit);
            return(false);
        }
示例#2
0
        /// <summary>
        /// Isometric equivalent of Physcis.Boxcast
        /// Note: Objects must have an IsoCollider attached to raycast against
        /// </summary>
        /// <param name="center"></param>
        /// <param name="halfExtents"></param>
        /// <param name="direction"></param>
        /// <param name="isoRaycastHit"></param>
        /// <param name="orientation"></param>
        /// <param name="maxDistance"></param>
        /// <param name="layerMask"></param>
        /// <param name="queryTriggerInteraction"></param>
        /// <returns></returns>
        public static bool BoxCast(Vector3 center, Vector3 halfExtents, Vector3 direction,
                                   out IsoRaycastHit isoRaycastHit,
                                   Quaternion orientation, float maxDistance       = Mathf.Infinity, int layerMask = Physics.DefaultRaycastLayers,
                                   QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal)
        {
            RaycastHit hit;

            if (Physics.BoxCast(center, halfExtents, direction, out hit, orientation, maxDistance, layerMask,
                                queryTriggerInteraction))
            {
                isoRaycastHit = IsoRaycastHit.FromRaycastHit(hit);
                return(!isoRaycastHit.Equals(default(IsoRaycastHit)));
            }

            isoRaycastHit = default(IsoRaycastHit);
            return(false);
        }