CullInstance

Inherits: Spatial < Node < Object

Inherited By: VisibilityNotifier, VisualInstance

所有可以被Portal入口系统剔除的节点的父节点。

描述

为可以被Portal系统剔除的节点提供通用功能。

StaticDynamic对象是系统中最有效的管理对象,但有一些注意事项。当使用RoomManager rooms_convert函数转换Room时,它们最初应该存在,并且其寿命应该与游戏级别相同,也就是说,在你调用RoomManagerrooms_clear之前一直存在。虽然你不应该在游戏过程中创建或删除这些对象,但可以用标准的hideshow命令管理它们的可见性。

另一方面,Roaming对象需要额外的处理来跟踪它们在哪个Room中。这使它们能够有效地被剔除,无论其位置。

Global对象不被入口系统剔除,只使用视图视锥剔除。

不是StaticDynamic的对象可以在游戏关卡的生命周期内自由创建和删除。

枚举

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

0

Setter

set_portal_autoplace_priority(value)

Getter

get_portal_autoplace_priority()

当设置为0时,CullInstance将被自动放置在具有最高优先级的Room中。

当设置为0以外的值时,系统将尝试在具有autoplace_priorityRoom中自动放置,如果它存在的话。

这可以用来控制建筑外面的在外部RoomGroup的自动放置。


  • bool include_in_bound

Default

true

Setter

set_include_in_bound(value)

Getter

get_include_in_bound()

当没有为 Room 明确指定手动边界时,凸形边界将根据房间内对象的几何形状进行估算。此设置确定对象的几何形状是否包含在此房间边界估算之中。

注意:此设置仅在对象设置为PORTAL_MODE_STATICPORTAL_MODE_DYNAMIC时有相,并且适用于Portal


Default

0

Setter

set_portal_mode(value)

Getter

get_portal_mode()

当使用RoomPortal时,这规定了CullInstance在系统中的处理方式。