/// <summary> /// Performs a raycast in both 2D and 3D. Returns data for the closest collision. /// </summary> /// <returns>The data for the closest collision.</returns> /// <param name="origin">Origin.</param> /// <param name="direction">Direction.</param> /// <param name="distance">Distance.</param> /// <param name="layerMask">Layer mask.</param> /// <param name="minDepth">Minimum depth.</param> /// <param name="maxDepth">Max depth.</param> public static IHitWrapper Raycast2D3D(Vector3 origin, Vector3 direction, float distance, int layerMask, float minDepth, float maxDepth) { IHitWrapper hit3d = Raycast3D(origin, direction, distance, layerMask); IHitWrapper hit2d = Raycast2D(origin, direction, distance, layerMask, minDepth, maxDepth); if (!hit3d.collided) { return(hit2d); } if (!hit2d.collided) { return(hit3d); } return((hit2d.distance < hit3d.distance) ? hit2d : hit3d); }
/// <summary> /// Initializes a new instance of the HitWrapperArguments class. /// </summary> /// <param name="hitWrapper">Hit wrapper.</param> public HitWrapperArguments(IHitWrapper hitWrapper) { m_HitWrapper = hitWrapper; }