实体限制
This page was translated by DaKang233 on October 3, 2022 (UTC+8). Anyone is welcome to add new content or fix errors.
出于内存分配的原因,Source 可以一次管理的实体 数量存在限制。
还应考虑地图实体数据的组合大小(以字节为单位),即使实体数量在安全限制范围内也是如此。大量 entdata 可能需要相当长的时间才能从服务器传输到客户端,并可能导致崩溃。
引擎限制
最多有 4096 个实体。总数分为两组,每组 2048 个。
如果游戏尝试分配第 2049 个实体字典,它将退出并显示错误消息,但如果它尝试创建第 2049 个非网络实体,它只会拒绝并向控制台打印警告。这背后的逻辑可能是动态生成的实体(即不存在于地图中)但没有分配实体字典可能不太重要。
这两个实体列表由 CBaseEntityList::CBaseEntityList()
使用 NUM_ENT_ENTRIES
和 MAX_EDICTS
创建。在不破坏与引擎的兼容性的情况下,这两个值都无法更改。
sprite_clientside
,或者细节 道具不计入任一限制。report_entities
和 cl_showents
等控制台命令来了解当前状态下存在多少实体。$collisionjoints
模型的道具实体将为其碰撞模型 的每个凸块生成一个 phys_bone_follower
。这些可以迅速吃满实体字典计数!在道具上启用“Disable Bone Followers”键值将禁用骨头跟随器(Bone Followers),尽管道具将不再具有正常运行的碰撞模型,并且模型将无法变成布娃娃 。VMF 限制
Hammer 本身没有实体限制,但 VBSP 的限制是 8192 个 ( 异形丛生 中是 16384 个, 反恐精英:全球攻势 中是 2048 个)。
这是引擎能接受的总和的两倍,这可能是因为它最初将内部实体 (例如prop_static
和env_cubemap
)视为普通实体,或者可能是因为它生成了很多细节道具 。
VBSP 还建议将 entdata 大小限制为 384KB,但这绝不是强制执行的。
起源2
在 起源2 中,尤其是 S&box,网络实体限制是 16384。
地图编译似乎没有限制,或者它与网络实体限制相关联。