Animation 如何在Unity中碰撞.fbx动画

Animation 如何在Unity中碰撞.fbx动画,animation,unity3d,unityscript,Animation,Unity3d,Unityscript,我不熟悉团结。我有两个.fbx格式的动画。它们可以移动。现在我想知道当它们相互碰撞时会产生声音。你知道我将如何做到这一点吗。提前谢谢你。我想你需要了解物理是如何工作的,以及触发事件和共线检测是如何处理的 读这里,然后。第一个让您了解Unity引擎是如何工作的。后者提供了关于如何进行碰撞检测的视频教程 如果你不想这样做,只想得到代码,我在一个快速的谷歌上发现: var crashSound : AudioClip; // set this to your sound in the inspecto

我不熟悉团结。我有两个.fbx格式的动画。它们可以移动。现在我想知道当它们相互碰撞时会产生声音。你知道我将如何做到这一点吗。提前谢谢你。我想你需要了解物理是如何工作的,以及触发事件和共线检测是如何处理的

读这里,然后。第一个让您了解Unity引擎是如何工作的。后者提供了关于如何进行碰撞检测的视频教程

如果你不想这样做,只想得到代码,我在一个快速的谷歌上发现:

var crashSound : AudioClip; // set this to your sound in the inspector function   
OnCollisionEnter (collision : Collision) {    
    // next line requires an AudioSource component on this gameobject5.    
    audio.PlayOneShot(crashSound);
}

可以将网格碰撞器添加到fbx网格。无论如何,这不是一个好主意,因为这将导致性能问题

您可以为每个角色创建一个空的游戏对象,并添加到其中:fbx动画和一个简单的碰撞器(一些立方体、球体、胶囊等)。然后,当您为它们使用脚本时,将其附加到父对象,然后从那里处理整个过程

如果希望碰撞器从动画中的特定位置移动(如冲孔移动或踢),则可以要求3D动画师/建模师在该点上添加简单网格。例如,一个冲压上的球体将随动画移动。然后,在Unity中,您将隐藏球体的网格,但向其添加网格碰撞器。:)


希望有帮助

大多数情况下,如果对对象应用动画,则会失去物理反应。不要相信我?请看这里:

显然,动画不是统一物理的一部分。想想看。。。统一物理学根据牛顿定律和朋友定律决定物体的位置和旋转。您认为这些定律如何符合任意动画的关键帧?他们做不到:因此当你尝试时,你会得到疯狂的结果

如何解决?在动画中使用Unity physics:学习掌握所描述的所有其他内容

您可能总是希望将物理和动画分开

如果你真的想知道的话:以下是我个人关于如何用动画来调解物理的经验

有时,甚至将一个简单的参数绑定到物理和其他 对于动画(或调解用户输入的脚本),可能会导致 灾难性后果。我做了一个星际飞船:旋转控制器 用户鼠标(通过标记“块刚体旋转”),方向和 物理速度。它在一个盒子对撞机里。想象一下会发生什么 如果一个立方体,以几度角定向,遇到一个平坦的地面:它 应下降并旋转,直到其中一个面完全落在地面上 地面。这是不可能的,因为我阻止了任何物理交互 身体的旋转:因此箱子想要平放在上面 地面上,但不能。这种紧张局势最终使它向前发展 永远:现实世界中不可能的事情。为了调解这一错误, 我已经使“块旋转”参数根据 用户输入:当船舶移动时,旋转由 但一旦用户停止控制船舶 旋转参数返回给物理引擎。另一个 解决方案是向对撞机投射光线,检查地面 如果船不移动,靠近并避免碰撞(这是如何 我认为光环战斗中的女妖是被控制的)。什么时候 玩电子游戏时,总是要看看你的用户输入是怎样的 进入物理引擎:你可能会发现 普通玩家通常不会注意到


谢谢你的回复。实际上我可以在简单的物体上应用物理,就像立方体一样。但是现在我想在动画上应用物理,这是我的fbx文件。我不能这样做…我已经在fbx文件中添加了网格碰撞器、刚体重力。我有一个下面有地形碰撞器的地形,但当我按下播放按钮时,我的角色将穿过地形并摔倒。。我不知道这是怎么回事…我已经阅读了你发送的所有链接…我发现了这个,可能是相关的?您必须使用碰撞器,最常见的是胶囊,因为您无法设置碰撞器的动画,因此网格碰撞器无法在已设置动画的对象上正常工作。你说你有一个盒子可以工作,这是相同的概念。顺便说一句,对撞机不工作可能还有其他原因。当你希望你的动画对象的行为符合物理规律时,请记住这一点。试试看。如果动画角色的速度不是很高,我从来没有遇到过问题。