【问题标题】:Unity physics scenes copy all colliders from main sceneUnity 物理场景从主场景复制所有对撞机
【发布时间】:2021-08-25 21:05:52
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

  • 您的目标是什么?就像那个“物理场景”到底应该做什么?为什么不直接在主场景中进行模拟呢?
  • 感谢您的提问,我已更新说明(此处空间不足)

标签: unity3d game-physics


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多