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

Posted

技术标签:

【中文标题】来自原生 iOS 的 Unity AR 视图的屏幕截图【英文标题】:Screencapture of Unity AR view from native iOS 【发布时间】:2021-11-22 22:34:07 【问题描述】:

我正在尝试从原生 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 视图,它在相机视图上有一些重叠的项目。我怎么能这样做?谢谢!

【问题讨论】:

【参考方案1】:

This 帖子帮助了我。所以我替换了下面的 lnes

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

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

像魅力一样工作

【讨论】:

以上是关于来自原生 iOS 的 Unity AR 视图的屏幕截图的主要内容,如果未能解决你的问题,请参考以下文章

集成Unity3D到iOS应用程序中

iOS,iOS9+ 提供的原生模糊视图效果?

iOS小技能:和uni-appunity的融合方案

在 iOS 原生应用中使用 FBX 文件和 3D 模型

AR 对象不应随 AR 相机 Vuforia Unity3d 移动

Unity跟IOS原生开发项目融合记录参加微软打造开发者社会生态圈线下会议