android - 在 Android 应用中截取 Unity 场景的屏幕截图
问题描述
在我的 Android 应用程序中,我有一个 Unity 场景作为视图的一部分。这是我从 Unity 编辑器导出项目后的设置方式。
protected void onCreate(Bundle savedInstanceState) {
this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
mUnityPlayer = new UnityPlayer(this);
binding = DataBindingUtil.setContentView(this, R.layout.main);
mUnityPlayer.setBackgroundResource(R.drawable.some_drawable);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
binding.scene.addView(mUnityPlayer.getView(), 0, lp);
}
这工作正常。现在我需要截取这个场景的截图并在另一个ImageView
. 问题是 UnityPlayer 是一个FrameLayout
,我希望使用getDrawingCache()
它来获取屏幕截图。
但这只会返回我的背景图像R.drawable.some_drawable
,Unity 场景中的任何文本和其他信息都不会出现在屏幕截图中。我认为这可能是因为其他内容不是 FrameLayout 的一部分,而是在某些TextureView
或某些东西上呈现。我可能完全错了。但我不知道如何获取场景内内容的屏幕截图,Bitmap
因为我可以将其设置在另一个imageView
.
任何指示或帮助将不胜感激。谢谢!
解决方案
推荐阅读
- python - 如何在 Pandas 和 Jupyter Notebook 中创建带有指向本地文件的可单击超链接的表
- html - 我想在 asp.net 的下拉列表旁边放一个按钮
- google-apps-script - 获取电子表格的 ID
- recursion - 不知道为什么 let 函数没有正确返回 sbcl lisp 中的值
- python - pandas.Series.str.replace() 基于另一个系列
- oop - D中类的比较运算符重载?
- android - 如何在 Room @Query 中使用参数字段?
- ios - RxSwift:结合两个网络请求返回一个值
- powerbi - Power BI:季度环比百分比变化
- google-apps-script - 日期过后删除 Google 表格中的一行