Unity 的场景可见性控件可用于在 Scene 视图中快速隐藏和显示游戏对象,而无需更改它们在游戏中的可见性。这可用于处理难以查看和选择特定游戏对象的大型或复杂场景。
使用可见性选项比停用游戏对象更安全,因为可见性选项仅影响 Scene 视图。这意味着不会从渲染的场景中意外删除游戏对象或触发光照、遮挡和其他系统的不必要烘焙作业。
Unity 将场景可见性设置保存到项目的 Library 文件夹中名为 SceneVisibilityState.asset 的文件中。场景会自动从该文件读取可见性设置,并在可见性设置每次更改时进行自动更新。这样,相关设置就可从一个会话持续到下一个会话。由于 Unity 的源代码控制设置通常会忽略 Library 文件夹,因此更改可见性设置应该不会造成源代码控制方面的冲突。
可以在层级视图中设置特定场景项的可见性,但是如果禁用场景范围内的可见性设置,则标记为隐藏的项可能仍会显示在 Scene 视图中。要更改此设置,可以在工具栏中切换场景可见性。
场景可见性控件与场景拾取控件非常相似。
可以从 Hierarchy 窗口控制各个游戏对象在场景中的可见性。
要切换场景可见性,请执行以下操作:
切换对象及其子项的可见性会影响所有子对象(从“目标”对象一直到层级视图的底部)。
切换单个对象的可见性不会影响其子项。这些子项会保留以前具有的任何可见性状态。
提示:还可以单击场景可见性图标在隐藏和显示场景中标记为隐藏的项之间进行切换。
由于可以切换整个分支或单个游戏对象的可见性,因此最后游戏对象变为可见状态,但子项或父项为隐藏状态。为了帮助跟踪发生的情况,可见性图标会改变以指示每个游戏对象的状态。
A | 游戏对象可见,但是其某些子项被隐藏。 | |
B | 游戏对象被隐藏,但是其某些子项可见。 | |
C | 游戏对象及其子项可见。仅当鼠标悬停在游戏对象上时,才会显示此图标。 | |
D | 游戏对象及其子项被隐藏。 |
在 Hierarchy 窗口中进行的场景可见性更改是持久有效的。每当在 Scene 视图中关闭和再次开启场景可见性、关闭然后重新打开场景或进行其他操作时,Unity 都会重新应用这些更改。
Scene 视图控制栏中的场景可见性开关会显示场景中隐藏的游戏对象的数量。单击此开关可开启和关闭场景可见性。
关闭场景可见性本质上会使 Hierarchy 窗口中设置的场景可见性设置保持静默状态,但不会删除或更改这些设置。所有隐藏的游戏对象都是暂时可见。
重新开启场景可见性将会重新应用在 Hierarchy 窗口中设置的可见性设置。
Isolation 视图会暂时覆盖场景可见性设置,以便仅显示所选的游戏对象,而其他所有对象被隐藏。
要进入 Isolation 视图,请执行以下操作:
按下 Shift + H。
这样可隔离所有选定的游戏对象及其子项。隔离隐藏的游戏对象会使这些游戏对象可见,直到退出 Isolation 视图。
在 Isolation 视图中时,可以继续更改场景可见性设置,但是所做的任何更改都会在退出时丢失。
要退出 Isolation 视图,请执行以下操作:
再次按下 Shift + H,或者单击 Scene 视图中的 Exit 按钮。
退出 Isolation 视图将恢复原始的场景可见性设置。