来自原生 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 视图的屏幕截图的主要内容,如果未能解决你的问题,请参考以下文章