Unity 物理场景复制主场景中的所有碰撞器

Unity physics scenes copy all colliders from main scene

我正在尝试使用 Unity 的物理场景在主场景之外进行一些模拟。话虽如此,我需要物理场景中主场景中的所有对撞机。使用来自另一个场景的所有现有对撞机创建物理场景的最简单方法是什么?我是否必须遍历所有内容,对每个对象使用 SceneManager.MoveGameObjectToScene(...) 然后在模拟结束时将它们移回?这似乎不可扩展。

编辑 我有一个多人游戏,当我从服务器获得响应时,我正在获取他们的速度和服务器位置,然后应用所有本地移动,因为该数据包是通过 Physics2D.Simulate() 发送的,以便将速度正确应用于该位置.现在我需要对射弹做同样的事情,所以我需要地图碰撞器和玩家的碰撞器。我在读物理模拟游戏最好的方法是使用物理场景。如果我在主场景中调用 Physics2D.Simulate() 以获得超过 1 组数据(玩家移动与射弹),我会出现很多屏幕抖动。将这些模拟移动到单独的场景中可以消除抖动。

我看到的唯一选择是自己重新实现 Physics2D.Simulate(),这似乎是一个糟糕(且复杂)的想法。

谢谢。

我最终只需要对撞机和刚体,所以我在物理场景中用这两个对象创建了一个空对象。每次我需要 运行 模拟时,我都会用当前玩家的刚体细节更新刚体,然后 运行 sim 并再次将 sim 的输出速度应用到玩家的刚体。