【发布时间】:2020-12-31 23:48:10
【问题描述】:
我有一个附有刚体的立方体,只要我按下播放按钮,它就会轻微滑动。如果我离开它一会儿,它会滑到屏幕的另一边。
有人知道如何在不使用“冻结位置”的情况下解决这个问题吗?我不知道我在我的项目中搞砸了什么......
这是对象的样子:
注意:我需要使用重力。
谢谢!
【问题讨论】:
标签: unity3d
我有一个附有刚体的立方体,只要我按下播放按钮,它就会轻微滑动。如果我离开它一会儿,它会滑到屏幕的另一边。
有人知道如何在不使用“冻结位置”的情况下解决这个问题吗?我不知道我在我的项目中搞砸了什么......
这是对象的样子:
注意:我需要使用重力。
谢谢!
【问题讨论】:
标签: unity3d
嘿!这里的解决方案是:
你不会那样做 :) 永远不会。
如果“地板”表面是平坦的,那么,
它不会滑动。
你遇到了一些奇怪的事情,比如
“地板”不平坦
开启了“风”之类的功能
也许你忘记的场景中不可见的其他物体正在轻推它
PhysX 没有“自己的想法”。它移动的原因很简单。
假设“地板”确实是一个角度,所以它应该移动,但你希望它不移动。
你显然做了什么:
就像在现实世界中一样,放一些东西来阻止它移动。
一堵看不见的小墙就可以解决问题。那是 PhysX!
【讨论】:
通常刚体滑动发生在较低刚体的质量小于较高刚体的质量时(迫使较低的刚体向下)。质量为 80 的玩家在质量为 1 的立方体上跳跃的典型问题。在这种情况下,碰撞非常剧烈,立方体可能会飞出(不仅是滑动)。 情况与现实世界非常相似。如果您有 120 公斤(好的,好的,80 :)),请尽量保持在一盒牛奶上。 当您尝试消除这种行为时,您需要增加较低物体的质量或减少较高物体的质量或将较低刚体设置为运动学。
【讨论】:
上述解决方案不是解决问题的正确方法。 Unity 比质量具有更多的物理特征。如果您在移动或由于其他物体而滑动,您应该在刚体上添加适当的拖动值。例如,假设您有块在其他块的顶部生成,这会产生水平滑动。在我的情况下,我将阻力 1 添加到质量约为 1 kg 的物体上。这取决于场景,您应该根据自己的情况尝试不同的值。如果不重要,请不要使用更大的值和角度阻力。
【讨论】: