实体限制
< Zh
Jump to navigation
Jump to search
出于内存分配的原因,Source 可以一次管理的实体 数量存在限制。
还应考虑地图实体数据的组合大小(以字节为单位),即使实体数量在安全限制范围内也是如此。大量 entdata 可能需要相当长的时间才能从服务器传输到客户端,并可能导致崩溃。
提示:创建非常大或细节很多的地图时,请记住,运行时存在的实体数将多于编译时的实体数量。角色持有的武器、子弹和死亡布娃娃等物品也是实体。如果您看到“no free edicts”错误,那么您需要开始减少实体数量!
引擎限制
最多有 4096 个实体。总数分为两组,每组 2048 个。
注意:在 Garry's Mod 中,限制高达 16384 个实体,分为两组,每组有 8192 个。在 传送门2,限制最高是 8192 个实体。
待完善: 查看其他起源引擎游戏的限制。
如果游戏尝试分配第 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 个)。
注意:这是一个软限制;一个修改后的 VBSP 可以在内存允许的情况下任意数量的实体。
这是引擎能接受的总和的两倍,这可能是因为它最初将内部实体 (例如prop_static和env_cubemap)视为普通实体,或者可能是因为它生成了很多细节道具 。
VBSP 还建议将 entdata 大小限制为 384KB,但这绝不是强制执行的。
起源2
在 起源2 中,尤其是 S&box,网络实体限制是 16384。
地图编译似乎没有限制,或者它与网络实体限制相关联。