Portal
Inherits: Spatial < Node < Object
门户节点用于实现房间Room之间的可见性。
描述
Portal
是一种特殊类型的 MeshInstance,允许门户剔除系统从一个空间“看到”到另一个空间。它们通常对应于水平几何中的门窗。只允许 Camera 透过传送门看到,这允许系统剔除空间中无法透过传送门看到的所有物体。这是遮挡剔除的一种形式,可以大大提高性能。
Portal的形式有一些限制:
它们必须是单面凸多边形,并且通常您会将它们的正面 向外 从它们所在的 Room 定向。顶点应该位于一个平面上(尽管它们的位置不必完美)。
无需在相邻空间放置对面的传送门,它们会自动建立双向链接。
属性
| ||
| ||
| ||
| ||
| ||
|
方法
void |
属性说明
- NodePath linked_room
Default |
|
Setter | set_linked_room(value) |
Getter | get_linked_room() |
这是在Portal
的名称中设置链接Room的快捷方式(名称在转换过程中使用)。
- PoolVector2Array points
Default |
|
Setter | set_points(value) |
Getter | get_points() |
定义 Portal
多边形形状的点(应该是凸面)。
这些是在 2D 中定义的,0,0
是 Portal
节点的 Spatial.global_transform 的原点。
注意: 这些原始点会被整理以便在内部缠绕顺序。
- bool portal_active
Default |
|
Setter | set_portal_active(value) |
Getter | get_portal_active() |
可以在运行时打开和关闭通过 Portal
的可见性 - 这对于具有可关闭的门很有用。
- float portal_margin
Default |
|
Setter | set_portal_margin(value) |
Getter | get_portal_margin() |
有些物体非常大,以至于它们可能会出现在不止一个 Room中(“蔓延”)。由于我们通常不希望将*只是*突破边缘的对象分配给相邻的房间,因此您可以通过 Portal
分配额外的边距,以允许对象在不蔓延的情况下突破。
- bool two_way
Default |
|
Setter | set_two_way(value) |
Getter | is_two_way() |
Portal默认为双向 - 在两个方向都可以看到,但是您可以将它们设为一种从源房间可见的方式。
- bool use_default_margin
Default |
|
Setter | set_use_default_margin(value) |
Getter | get_use_default_margin() |
在大多数情况下,您会希望在Portal中使用默认的 Portal
边距(这是在 RoomManager 中设置的)。
如果要覆盖这个默认值,把这个值设置为false
,本地的portal_margin就会生效。
方法说明
设置单个点。主要供编辑器使用。