我有一个纸牌游戏(骰子)原型完全与UI对象在画布上。我做了它,所以3D骰子显示每当骰子参与游戏。
它的工作原理是这样的:
- 在主摄像机视野之外的某个地方,我在骰子落下的地方做了一个小的3D区域。
- 这个区域有它自己的带有渲染纹理的相机。
- 一个原始图像被放置在画布上的其他所有东西之上,带有渲染纹理。
- 摄像机在骰子区域的视图通过原始图像显示,因此看起来骰子实际上落在画布上。
这在PC和编辑器上都很好用。但在Android上,RawImage和RenderTexture是完全黑色的。这似乎是Unity多年来的一个已知问题,但我找不到适合我的解决方案。有谁知道我如何才能使渲染纹理在Android上工作?
以下是一些图像,显示了我所描述的元素:
游戏运行3D骰子滚动:
场景视图,左=画布、主摄像头和原始图像,右=具有单独摄像头的3D Dice区域:
3D Dice区域特写:
渲染纹理:
渲染纹理的3D骰子区域中的相机:
画布中渲染纹理的Raw Image:
3条答案
按热度按时间hof1towb1#
如果你仍然有黑色渲染纹理的问题,将图形API从Vulkan更改为OpenGL ES3应该可以解决这个问题,它对我来说确实如此。
可能的解决方案归功于pch4n:https://forum.unity.com/threads/unity-rendertexture-black-when-saving-png-on-oculus-quest-android.1152818/
P.S.请不要问我为什么或如何解决我们的问题,因为我不知道,我刚刚开始学习团结。
xv8emn3q2#
将深度缓冲区设置为至少24位深度
iovurdzv3#
将深度模板格式更改为D16-UNORM。这将完美地工作。