我的游戏中有一艘由独立模块组成的飞船,这些模块简单且基于网格布局。每个模块都有用于碰撞检测/判定是否被弹丸击中时的碰撞器。在GameObject模式下,使用带有多个子对象的父对象并给子对象添加碰撞器,对物理系统来说成本较低。
而在ECS模式下,我似乎需要使用复合碰撞器……但每当一个模块被摧毁时,该复合碰撞器就需要重建……而GameObject模式下则不需要。
ECS端是否有更好的方式来实现这一点……或者从长远来看,GameObject模式会更"节省资源",因为这个成本在ECS中过于显著?一艘船不是大问题……但如果我有100名玩家同时与10艘船战斗,那么可能需要为这些被攻击的船每秒重建复合碰撞器10到100次。
(注意:游戏是"2D"的,但ECS只在3D环境下运行,所以觉得在这里提问更好,因为ECS会使用3D碰撞器。
游戏理想情况下可能会有数百到数千名玩家同时摧毁敌方船只……因此在处理大量独立模块/子弹时ECS似乎更好,但我担心物理方面的问题,因为我无法像在GameObject中那样简单地使用父对象加子对象碰撞器的方式。)
评论 (0)