【问题标题】:How to add physics to an object in Unity 5如何在 Unity 5 中为对象添加物理
【发布时间】:2016-06-13 22:24:18
【问题描述】:

我的物理有问题!我已经导入了一个对象,它是从 3ds max 到 unity 5 的桥梁,但问题是每当我想穿过它时,我都会摔倒。好像没有什么叫桥!我知道物理学一定有问题。但是怎么解决呢?!

【问题讨论】:

  • 这个问题经常被不知道如何制作电子游戏的初学者问到。 (最令人困惑的是,Unity 文档提到了“网格”对撞机,这是完全不相关的。)下面 Minzkraut 的回答是对这个常见问题的绝对精彩,现在是规范的回答。多么棒的答案!
  • 视频游戏有艺术家制作的复杂的 LOOKING 对象。您将复杂的“形状”对象导入游戏引擎。然后 PROGRAMMER 添加 COLLIDERS。形状通常很复杂,但对撞机非常简单。制作模型就像写小说。制作对撞机就像写诗一样。将每个对象或角色的对撞机放入视频游戏中需要很多技巧。您可以使用 SPHERE 或 BOX 对撞机。在这里,您只需使用 BOX 对撞机。你可能需要说三个来执行步行表面,也许是侧面(如果需要)。

标签: c# unity3d


【解决方案1】:

将模型导入 Unity 时,它没有任何 Collider。

即使使用自动生成的“MeshColliders”是一个选项
强烈建议 不要使用它们
在游戏中,您永远不需要如此详细的对撞机。
相反,你必须

手动添加碰撞器

这里有一个分步指南

这是进口模型(用搅拌机制作),没有任何对撞机

首先要做的是给组件添加一个新的盒子碰撞器

如图所示

接下来要做的是缩放盒子碰撞器

通过手动输入值或使用拖动/GUI 版本,就像我在下面的 gif 中所做的那样

(您可能已经知道了,但是可以通过舔右上角的圆锥体之间的小立方体将模式更改为正交)

如有必要,您可以根据需要添加任意数量的“细节”对撞机

通过重复这些步骤。有时球体或胶囊对撞机可能更适合,但请记住它们具有更高的分辨率!
在这种情况下,我添加了另一个代表汽车上部的盒子对撞机:

这就是使物体与对象发生碰撞所需的全部内容

【讨论】:

  • @AndrewGriffin 我已阅读您的回答并同意他的网格看起来很复杂。但是您永远不需要视觉效果的所有复杂性。在这种特定情况下,一个箱形对撞机可以行走,一些可以阻挡桥的“腿”,IMO 就足够了。如果您启用凸选项,就像您提到的那样,腿之间的空间也会丢失,因此无法通过桥下。
  • @JoeBlow 哈哈,谢谢,实际上我在制作这个图形答案时很开心。顺便说一句,它部分受到了你的启发;)
  • @Minzkraut 是的,你说得对,凸对撞机在这座桥上不起作用。只有当网格碰撞器是凸形或像 Blow 先生的剑示例一样小时,它们才应标记为凸形……不是凸形但足够小以至于没关系。它也确实取决于您的游戏要求。我知道 Skyrim/Fallout 类型的游戏不会在此类对象上使用原始对撞机,因为它们不会与环境很好地交互。他们实际上使用了较低的多边形凸碰撞模型。
  • @JoeBlow 我想这取决于您制作的游戏类型。我怀疑您开发的游戏类型是针对低端设备还是 RTS?如果是这样,那将是有道理的。它还取决于碰撞的上下文。我们使用原始对撞机来进行玩家命中检测等。不过,我不会将球体用于岩石。如果我的回答冒犯了你,我很抱歉。
  • 是的,我认为这离题了。 OP 对如何使用网格碰撞器或复合基元向其桥梁添加碰撞有他们的答案。我所说的低端设备是指手机或电视之类的设备。低多边形凸碰撞模型绝对不是一种“新方法”……我已经使用它们多年了。无论如何,我非常感谢您的意见,但我认为您可能过于依赖原语。肯定有时间使用它们。我们的项目成功地使用了两者的组合。知道何时使用时间和经验。
【解决方案2】:

现在您只附加了一个 MeshFilter、MeshRenderer 和 Animator 组件。你走过它,因为网格只是被渲染。为了添加碰撞,向它添加一个MeshCollider 组件。

Joe 提供了另一种使用盒子对撞机的方法。这两种方法都有一点需要了解:

  • Box collider 需要更多时间来设置(而不是仅仅添加一个 组件)并且精度会降低。它们将具有更快的性能。

  • 网格碰撞器与其他网格碰撞器的碰撞效果不佳。 但是,这通常不是问题。如果一个网格对撞机有 选中“凸”复选框,然后它会与其他复选框发生冲突 网格对撞机。小物品和任何凸形网格都应该有 “凸”检查。

对于像桥牌这样的东西.. 这取决于您的游戏。如果你正在做一个机动性有限(没有跳跃)的自上而下的游戏,那么盒子对撞机可能适合你。如果您正在制作第一人称游戏,那么我强烈建议您使用网格对撞机。如果你决定使用盒子碰撞器,那么你必须仔细设置它们。否则,物理可能与玩家看到的不匹配!

此时不要担心性能。以后再担心它如果它会成为一个问题。随着 Unity 5 中的物理升级,它可能不会。

【讨论】:

  • 几乎可以肯定:绝对不要这样做,安德鲁。使用 BOX COLLIDER(或其中一些)。
  • Joe,对于他复杂的几何形状,我建议使用网格对撞机。他的网格过于复杂,无法用盒子碰撞器充分复制。
  • 我只能说你对这个安德鲁大错特错,对不起!在你玩过这样一个物体的任何游戏中,它会由一个扁平盒对撞机(用于你正在行走的表面)和(仅在极少数情况下,如果必要的话)每个对应一个“边”。
  • 是的,正如我在之前更新的答案中提到的那样,如果它类似于 RTS,那么盒子就足够了。如果他在做某种第一人称或第三人称的游戏,玩家控制着相机……你可以期待很多盒子对撞机的剪辑。
  • 嗨,安德鲁,这完全错了。我可以向你保证,对于像 OP 这样的普通 3D 游戏(格斗、第一人称、赛车等),它应该是盒子对撞机。无论如何欢呼!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-13
  • 2021-02-16
  • 1970-01-01
  • 1970-01-01
  • 2019-01-19
  • 1970-01-01
相关资源
最近更新 更多