Unity中的RenderTexture在Android上是黑色的,但在编辑器中工作正常

6tqwzwtp  于 2023-09-28  发布在  Android
关注(0)|答案(3)|浏览(240)

我有一个纸牌游戏(骰子)原型完全与UI对象在画布上。我做了它,所以3D骰子显示每当骰子参与游戏。
它的工作原理是这样的:

  • 在主摄像机视野之外的某个地方,我在骰子落下的地方做了一个小的3D区域。
  • 这个区域有它自己的带有渲染纹理的相机。
  • 一个原始图像被放置在画布上的其他所有东西之上,带有渲染纹理。
  • 摄像机在骰子区域的视图通过原始图像显示,因此看起来骰子实际上落在画布上。

这在PC和编辑器上都很好用。但在Android上,RawImage和RenderTexture是完全黑色的。这似乎是Unity多年来的一个已知问题,但我找不到适合我的解决方案。有谁知道我如何才能使渲染纹理在Android上工作?
以下是一些图像,显示了我所描述的元素:

游戏运行3D骰子滚动:

场景视图,左=画布、主摄像头和原始图像,右=具有单独摄像头的3D Dice区域:

3D Dice区域特写:

渲染纹理:

渲染纹理的3D骰子区域中的相机:

画布中渲染纹理的Raw Image:

hof1towb

hof1towb1#

如果你仍然有黑色渲染纹理的问题,将图形API从Vulkan更改为OpenGL ES3应该可以解决这个问题,它对我来说确实如此。
可能的解决方案归功于pch4n:https://forum.unity.com/threads/unity-rendertexture-black-when-saving-png-on-oculus-quest-android.1152818/
P.S.请不要问我为什么或如何解决我们的问题,因为我不知道,我刚刚开始学习团结。

xv8emn3q

xv8emn3q2#

将深度缓冲区设置为至少24位深度

iovurdzv

iovurdzv3#

将深度模板格式更改为D16-UNORM。这将完美地工作。

相关问题