CullInstance
Inherits: Spatial < Node < Object
Inherited By: VisibilityNotifier, VisualInstance
所有可以被Portal入口系统剔除的节点的父节点。
描述
为可以被Portal系统剔除的节点提供通用功能。
Static
和Dynamic
对象是系统中最有效的管理对象,但有一些注意事项。当使用RoomManager rooms_convert
函数转换Room时,它们最初应该存在,并且其寿命应该与游戏级别相同,也就是说,在你调用RoomManager的rooms_clear
之前一直存在。虽然你不应该在游戏过程中创建或删除这些对象,但可以用标准的hide
和show
命令管理它们的可见性。
另一方面,Roaming
对象需要额外的处理来跟踪它们在哪个Room中。这使它们能够有效地被剔除,无论其位置。
Global
对象不被入口系统剔除,只使用视图视锥剔除。
不是Static
或Dynamic
的对象可以在游戏关卡的生命周期内自由创建和删除。
属性
| ||
| ||
|
枚举
enum PortalMode:
- PORTAL_MODE_STATIC = 0 —- 用于不会移动的Room内的实例—例如,墙壁、地板。
注意: 如果你在房间图形加载即转换的时候,试图删除一个PORTAL_MODE_STATIC
实例,它将卸载房间图形并停用入口剔除。这是因为房间图形的数据已经失效。你将需要使用RoomManager重新转换房间以再次激活系统。
- PORTAL_MODE_DYNAMIC = 1 —- 用于房间内会移动但 不会改变房间 的实例 - 例如移动平台。
注意: 如果在加载即转换房间图形时尝试删除 PORTAL_MODE_DYNAMIC
实例,它将卸载房间图形并停用入口剔除。这是因为房间图形数据已经失效。将需要使用 RoomManager 重新转换房间以再次激活系统。
PORTAL_MODE_ROAMING = 2 —- 用于在 Room 之间 移动的实例 - 例如玩家。
PORTAL_MODE_GLOBAL = 3 —- 用于只会被视锥剔除的实例 - 例如第一人称武器,调试。
PORTAL_MODE_IGNORE = 4 —- 用于根本不会显示的实例 - 例如手动房间边界,由前缀‘Bound_‘指定。
属性说明
- int autoplace_priority
Default |
|
Setter | set_portal_autoplace_priority(value) |
Getter | get_portal_autoplace_priority() |
当设置为0
时,CullInstance
将被自动放置在具有最高优先级的Room中。
当设置为0
以外的值时,系统将尝试在具有autoplace_priority
的Room中自动放置,如果它存在的话。
这可以用来控制建筑外面的在外部RoomGroup的自动放置。
- bool include_in_bound
Default |
|
Setter | set_include_in_bound(value) |
Getter | get_include_in_bound() |
当没有为 Room 明确指定手动边界时,凸形边界将根据房间内对象的几何形状进行估算。此设置确定对象的几何形状是否包含在此房间边界估算之中。
注意:此设置仅在对象设置为PORTAL_MODE_STATIC
或PORTAL_MODE_DYNAMIC
时有相,并且适用于Portal。
- PortalMode portal_mode
Default |
|
Setter | set_portal_mode(value) |
Getter | get_portal_mode() |