【问题标题】:Can't see plane in Unity在 Unity 中看不到飞机
【发布时间】:2019-10-09 04:52:37
【问题描述】:

我正在开发一款游戏,其中有两个不同的平面,玩家将在两个平面之间移动(第一人称视角)。

我将主摄像机放在两个不同平面之间,它们的 x 和 z 值相等,y 值相差 10。现在摄像机的 y 值为 5(正好在两个平面之间)。

无论我将相机移动到顶平面下方的哪个位置,我都看不到它。我猜从技术上讲,它是顶部平面的底部。

一切都是这样的:

【问题讨论】:

  • 您也可以尝试创建一个double sided shader 或从AssetStore 中取一个
  • 查找“背面剔除”,这就是您遇到的“问题”。如果你只是翻转顶部平面,你会看到它。但无论如何都要查找“背面剔除”。没有简单的出路,我们是来了解事情的;)

标签: unity3d plane


【解决方案1】:

平面只在一个方向上渲染。因此,如果您看到底部,您将无法看到它。

如果您想看到两面,您可以使用cube primitive 并将y 缩放组件缩小到非常薄,或者您可以制作两个平面,将它们背靠背放置。

如果您想将它们背靠背设置,您只需 (1) 复制平面(使用 CTRL + D),然后将这个新平面的比例设置为 1,-1,1,位置相同另一个。所有其他值将与其他原始平面保持相同。
像这样:

您只能看到平面的一个面,因为该平面的 normals 指向上方,并且默认着色器仅渲染该表面的法线(通常是该表面的顶点的平均值)所面对的表面相机。

大多数着色器都设置为剔除背面。要获得更高级的解决方案,您只需在着色器中设置 CULL OFF 即可渲染两侧。

另请参阅:Render both sides of a plane - Unity Answers

【讨论】:

  • 添加一个盒子碰撞器让你从下面看到它?
  • 是的,但是如果您同时拥有平面和盒子,它们很可能会以某种方式发生冲突。您可以添加一个盒子对撞机,但要确保它不会触及计划。也许最好的解决方案就是复制平面然后反转它。
  • 我明白了,就像these 之一? Colliders 在没有附加渲染器的情况下是不可见的
猜你喜欢
  • 2018-09-17
  • 2016-01-10
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
相关资源
最近更新 更多