UICamera.IsVisible C# (CSharp) Méthode

IsVisible() static private méthode

Helper function to check if the specified hit is visible by the panel.
static private IsVisible ( RaycastHit &hit ) : bool
hit UnityEngine.RaycastHit
Résultat bool
	static bool IsVisible (ref RaycastHit hit)
	{
		UIPanel panel = NGUITools.FindInParents<UIPanel>(hit.collider.gameObject);

		if (panel == null || panel.IsVisible(hit.point))
		{
			return true;
		}
		return false;
	}

Usage Example

Exemple #1
0
 public static bool Raycast(Vector3 inPos, ref RaycastHit hit)
 {
     for (int i = 0; i < UICamera.mList.Count; i++)
     {
         UICamera uicamera = UICamera.mList[i];
         if (uicamera.enabled && NGUITools.GetActive(uicamera.gameObject))
         {
             UICamera.currentCamera = uicamera.cachedCamera;
             Vector3 vector = UICamera.currentCamera.ScreenToViewportPoint(inPos);
             if (vector.x >= 0f && vector.x <= 1f && vector.y >= 0f && vector.y <= 1f)
             {
                 Ray   ray       = UICamera.currentCamera.ScreenPointToRay(inPos);
                 int   layerMask = UICamera.currentCamera.cullingMask & uicamera.eventReceiverMask;
                 float distance  = (uicamera.rangeDistance <= 0f) ? (UICamera.currentCamera.farClipPlane - UICamera.currentCamera.nearClipPlane) : uicamera.rangeDistance;
                 if (uicamera.clipRaycasts)
                 {
                     RaycastHit[] array = Physics.RaycastAll(ray, distance, layerMask);
                     if (array.Length > 1)
                     {
                         Array.Sort <RaycastHit>(array, (RaycastHit r1, RaycastHit r2) => r1.distance.CompareTo(r2.distance));
                         int j   = 0;
                         int num = array.Length;
                         while (j < num)
                         {
                             if (UICamera.IsVisible(ref array[j]))
                             {
                                 hit = array[j];
                                 return(true);
                             }
                             j++;
                         }
                     }
                     else if (array.Length == 1 && UICamera.IsVisible(ref array[0]))
                     {
                         hit = array[0];
                         return(true);
                     }
                 }
                 else if (Physics.Raycast(ray, out hit, distance, layerMask))
                 {
                     return(true);
                 }
             }
         }
     }
     return(false);
 }