I am going to access ARDepthData
in Xamarin.iOS. So far my code is like this.
public override void ViewDidAppear(bool animated)
{
base.ViewDidAppear(animated);
if (!ARWorldTrackingConfiguration.SupportsFrameSemantics(ARFrameSemantics.SceneDepth))
{
UIAlertController alertController = UIAlertController.Create("Unsupported Device", "SceneDepth is not available on current device", UIAlertControllerStyle.Alert);
alertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));
PresentViewController(alertController, true, null);
}
else
{
UIAlertController alertController = UIAlertController.Create("Yay", "Congratulations! Your device supports SceneDepth", UIAlertControllerStyle.Alert);
alertController.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));
PresentViewController(alertController, true, null);
configuration = new ARWorldTrackingConfiguration
{
FrameSemantics = ARFrameSemantics.SceneDepth,
PlaneDetection = ARPlaneDetection.None
};
sceneView.Session.Delegate = new SessionDelegate();
sceneView.Session = session;
sceneView.Session.Run(configuration);
}
My SessionDelegate
class is like this.
public class SessionDelegate : ARSessionDelegate
{
public SessionDelegate()
{
}
public override void DidUpdateFrame(ARSession session, ARFrame frame)
{
base.DidUpdateFrame(session, frame);
Console.WriteLine("Frame has been updated");
if (frame.SceneDepth != null)
{
Console.WriteLine("Depth data is not null");
}
}
}
My app just opens up the camera view. The above delegate is not firing. What am I missing here? When does this delegate fire and how can I get the distance from
SceneDepthData?
Thank you!
question from:
https://stackoverflow.com/questions/65896210/how-to-get-the-distance-from-scenedepth-data-in-xamarin-ios 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…