Skip to main content

2. 遮挡剔除如何影响物体

遮挡剔除分别对待静态对象(如地图)和动态对象(如玩家和拾取物)。

  • 静态对象可以隐藏也可以被隐藏。(你不总是希望静态对象同时做这两件事。)它们将被烘焙进数据中,并且在运行时不能改变。
  • 动态对象不能隐藏它们背后的物体,但会根据一个粗略的计算被隐藏,这个计算判断它们是否在静态物体后面。

Unity使用对象上的静态标志来确定遮挡如何影响它们。遮挡考虑三种不同的情况。

  • 静态遮挡物。唯一可以遮挡的是不移动的静态物体——特别是网格渲染器和地形。如果它们被标记为遮挡静态,则它们后面的物体会被隐藏。它们将被烘焙进遮挡数据中。
  • 静态被遮挡物。这指定了会被隐藏的静态物体。被遮挡物可以是任何带有渲染器的物体,只要它不移动。
  • 动态被遮挡物。这涵盖了场景中的其他任何东西。如果启用了“动态遮挡”属性,那么它可以被静态遮挡物使用烘焙数据隐藏。

动态遮挡不如静态遮挡精确。实际上,只有大型的、实心的物体才会隐藏动态对象。