来自原生 iOS 的 Unity AR 视图的屏幕截图

Screencapture of Unity AR view from native iOS

我正在尝试从本机 iOS 截取我的 Unity 视图的屏幕截图。我的母语iOS已经写成Xamarin.iOS

当按钮单击事件在统一视图上触发时,我的本机应用程序会触发通知并在本机端调用方法。在这个本机方法中,我试图捕获当前视图(Unity AR 视图)的屏幕截图。这是我用来截屏的 xamarin 代码。

            UnityFramework _ufw;
            _view = _ufw.AppController().RootView;
            var mainLayer = _view.Window.Layer;
            
            mainLayer.RenderInContext(UIGraphics.GetCurrentContext());
            var img = UIGraphics.GetImageFromCurrentImageContext();
            img.SaveToPhotosAlbum((iRef, status) =>
            {
                if (status != null)
                {
                    new UIAlertView("Problem", status.ToString(), null, "OK", null).Show();
                }
                else
                {
                    new UIAlertView("Saved", "Saved", null, "OK", null).Show();
                }
            });
        }
        finally
        {
            UIGraphics.EndImageContext();
        }

我的问题是它无法捕获我的 AR 视图。相反,它只是捕获一个白色视图。我想捕获我的 Unity 视图,它在相机视图上有一些重叠的项目。我怎么能这样做?谢谢!

post 帮助了我。所以我替换了下面的 lnes

var mainLayer = _view.Window.Layer;         
mainLayer.RenderInContext(UIGraphics.GetCurrentContext());

UIGraphics.BeginImageContextWithOptions(_view.Frame.Size, false, 0f);
_view.DrawViewHierarchy(_view.Frame, true);

很有魅力