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 }