Exemplo n.º 1
0
        public List <ARHitTestResult> HitTest(ARPoint point, ARHitTestResultType types)
        {
            int num = HitTest(m_NativeARSession, point, types);
            List <ARHitTestResult> list = new List <ARHitTestResult>();

            for (int i = 0; i < num; i++)
            {
                UnityARHitTestResult lastHitTestResult = GetLastHitTestResult(i);
                list.Add(GetHitTestResultFromResultData(lastHitTestResult));
            }
            return(list);
        }
        static ARHitTestResult GetHitTestResultFromResultData(UnityARHitTestResult resultData)
        {
            ARHitTestResult arHitTestResult = new ARHitTestResult();

            arHitTestResult.type           = resultData.type;
            arHitTestResult.distance       = resultData.distance;
            arHitTestResult.localTransform = resultData.localTransform;
            arHitTestResult.worldTransform = resultData.worldTransform;
            arHitTestResult.isValid        = resultData.isValid;
            if (resultData.anchor != IntPtr.Zero)
            {
                arHitTestResult.anchorIdentifier = Marshal.PtrToStringAuto(resultData.anchor);
            }
            return(arHitTestResult);
        }
 static ARHitTestResult GetHitTestResultFromResultData(UnityARHitTestResult resultData)
 {
     #if PLATOFORM_IOS
     ARHitTestResult arHitTestResult = new ARHitTestResult();
     arHitTestResult.type           = resultData.type;
     arHitTestResult.distance       = resultData.distance;
     arHitTestResult.localTransform = resultData.localTransform;
     arHitTestResult.worldTransform = resultData.worldTransform;
     arHitTestResult.isValid        = resultData.isValid;
     if (resultData.anchor != IntPtr.Zero)
     {
         arHitTestResult.anchorIdentifier = Marshal.PtrToStringAuto(resultData.anchor);
     }
     return(arHitTestResult);
     #else
     Debug.LogError("Not available on non iOS platform");
     return(new ARHitTestResult());
     #endif
 }