11using System . Collections . Generic ;
22using UnityEngine ;
3- using UnityEngine . Experimental . XR ;
43using UnityEngine . XR . ARFoundation ;
4+ using UnityEngine . XR . ARSubsystems ;
55
66namespace CandyCoded . ARFoundationComponents
77{
@@ -11,7 +11,7 @@ public static class ARFoundationExtensions
1111
1212 public static Vector2 CenterOfScreen => new Vector2 ( Screen . width , Screen . height ) / 2 ;
1313
14- public static bool RaycastToPlane ( Vector3 position , ARSessionOrigin sessionOrigin , ARPlaneManager planeManager , out Pose pose , out ARPlane plane )
14+ public static bool RaycastToPlane ( Vector2 position , ARRaycastManager raycastManager , ARPlaneManager planeManager , out Pose pose , out ARPlane plane )
1515 {
1616
1717 var hits = new List < ARRaycastHit > ( ) ;
@@ -20,7 +20,7 @@ public static bool RaycastToPlane(Vector3 position, ARSessionOrigin sessionOrigi
2020
2121 plane = null ;
2222
23- if ( ! sessionOrigin . Raycast ( position , hits , TrackableType . PlaneWithinPolygon ) )
23+ if ( ! raycastManager . Raycast ( position , hits , TrackableType . Planes ) )
2424 {
2525 return false ;
2626 }
@@ -29,34 +29,44 @@ public static bool RaycastToPlane(Vector3 position, ARSessionOrigin sessionOrigi
2929
3030 pose = hit . pose ;
3131
32- plane = planeManager . TryGetPlane ( hit . trackableId ) ;
32+ foreach ( var trackable in planeManager . trackables )
33+ {
34+
35+ if ( trackable . trackableId . Equals ( hit . trackableId ) )
36+ {
37+
38+ plane = trackable ;
39+
40+ }
41+
42+ }
3343
3444 return true ;
3545
3646 }
3747
38- public static bool IsLookingAtPlane ( ARSessionOrigin sessionOrigin , ARPlaneManager planeManager , out Pose pose , out ARPlane plane )
48+ public static bool IsLookingAtPlane ( ARRaycastManager raycastManager , ARPlaneManager planeManager , out Pose pose , out ARPlane plane )
3949 {
4050
41- return RaycastToPlane ( CenterOfScreen , sessionOrigin , planeManager , out pose , out plane ) ;
51+ return RaycastToPlane ( CenterOfScreen , raycastManager , planeManager , out pose , out plane ) ;
4252
4353 }
4454
45- public static bool IsLookingAtPlane ( ARSessionOrigin sessionOrigin , ARPlaneManager planeManager , out Pose pose )
55+ public static bool IsLookingAtPlane ( ARRaycastManager raycastManager , ARPlaneManager planeManager , out Pose pose )
4656 {
4757
48- return RaycastToPlane ( CenterOfScreen , sessionOrigin , planeManager , out pose , out var plane ) ;
58+ return RaycastToPlane ( CenterOfScreen , raycastManager , planeManager , out pose , out var plane ) ;
4959
5060 }
5161
52- public static bool IsLookingAtPlane ( ARSessionOrigin sessionOrigin , ARPlaneManager planeManager )
62+ public static bool IsLookingAtPlane ( ARRaycastManager raycastManager , ARPlaneManager planeManager )
5363 {
5464
55- return RaycastToPlane ( CenterOfScreen , sessionOrigin , planeManager , out var pose , out var plane ) ;
65+ return RaycastToPlane ( CenterOfScreen , raycastManager , planeManager , out var pose , out var plane ) ;
5666
5767 }
5868
59- public static bool HasTouchedPlane ( ARSessionOrigin sessionOrigin , ARPlaneManager planeManager , out Pose pose , out ARPlane plane )
69+ public static bool HasTouchedPlane ( ARRaycastManager raycastManager , ARPlaneManager planeManager , out Pose pose , out ARPlane plane )
6070 {
6171
6272 pose = Pose . identity ;
@@ -70,21 +80,21 @@ public static bool HasTouchedPlane(ARSessionOrigin sessionOrigin, ARPlaneManager
7080
7181 var touch = Input . GetTouch ( 0 ) ;
7282
73- return touch . phase == TouchPhase . Began && RaycastToPlane ( touch . position , sessionOrigin , planeManager , out pose , out plane ) ;
83+ return touch . phase == TouchPhase . Began && RaycastToPlane ( touch . position , raycastManager , planeManager , out pose , out plane ) ;
7484
7585 }
7686
77- public static bool HasTouchedPlane ( ARSessionOrigin sessionOrigin , ARPlaneManager planeManager , out Pose pose )
87+ public static bool HasTouchedPlane ( ARRaycastManager raycastManager , ARPlaneManager planeManager , out Pose pose )
7888 {
7989
80- return HasTouchedPlane ( sessionOrigin , planeManager , out pose , out var plane ) ;
90+ return HasTouchedPlane ( raycastManager , planeManager , out pose , out var plane ) ;
8191
8292 }
8393
84- public static bool HasTouchedPlane ( ARSessionOrigin sessionOrigin , ARPlaneManager planeManager )
94+ public static bool HasTouchedPlane ( ARRaycastManager raycastManager , ARPlaneManager planeManager )
8595 {
8696
87- return HasTouchedPlane ( sessionOrigin , planeManager , out var pose , out var plane ) ;
97+ return HasTouchedPlane ( raycastManager , planeManager , out var pose , out var plane ) ;
8898
8999 }
90100
0 commit comments