gpt4 book ai didi

android - 如何使用 Unity ARCore SDK 拍摄和保存图片/屏幕截图?

转载 作者:行者123 更新时间:2023-11-29 00:03:03 27 4
gpt4 key购买 nike

我找到了如何在本地执行此操作的答案,但我运行的是 Unity。

How to take picture with camera using ARCore

我不确定如何访问 Unity 表面渲染器线程才能放入这些函数。

This looks就像一个好的开始。想法?

编辑:

使用 Texture2d ReadPixels 或 ScreenCapture.CaptureScreenshot 是不可行的,因为它们会阻塞渲染线程。下面的代码足以阻塞线程。

StartCoroutine(TakeScreenshot());

private IEnumerator TakeScreenshot()
{
yield return new WaitForEndOfFrame();

Texture2D ss = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false);
ss.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
ss.Apply();

编辑 2:Am considering using this technique .如果成功,将报告。

最佳答案

我找到了 this repo on github这使得使用 native iOS 和 Android 代码将屏幕截图保存到设备变得非常简单。从技术上讲,您可以只使用 Texture2D 捕获代码来获取屏幕截图,但后续的 NativeGallery 调用允许您将其写入设备。 GitHub 自述文件介绍了您需要启用哪些设置才能写入设备。

private void ScreenshotButtonClicked()
{
StartCoroutine(TakeScreenshot());
}

private IEnumerator TakeScreenshot()
{
SetUIActive(false);

yield return new WaitForEndOfFrame();

Texture2D ss = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false);
ss.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
ss.Apply();

NativeGallery.SaveToGallery(ss, "Native Screenshots", DateTime.Now.ToString().Replace("/", "-"));

SetUIActive(true);
}

private void SetUIActive(bool active)
{
Button.gameObject.SetActive(active);
ScaleSlider.gameObject.SetActive(active);
}

关于android - 如何使用 Unity ARCore SDK 拍摄和保存图片/屏幕截图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49016071/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com