【问题标题】:Unity 3D object with Rigidbody sliding具有刚体滑动的 Unity 3D 对象
【发布时间】:2020-12-31 23:48:10
【问题描述】:

我有一个附有刚体的立方体,只要我按下播放按钮,它就会轻微滑动。如果我离开它一会儿,它会滑到屏幕的另一边。

有人知道如何在不使用“冻结位置”的情况下解决这个问题吗?我不知道我在我的项目中搞砸了什么......

这是对象的样子:

注意:我需要使用重力。

谢谢!

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    嘿!这里的解决方案是:

    你在地板上有一个刚体:)

    你不会那样做 :) 永远不会。


    如果“地板”表面是平坦的,那么,

    不会滑动

    你遇到了一些奇怪的事情,比如

    • “地板”不平坦

    • 开启了“风”之类的功能

    • 也许你忘记的场景中不可见的其他物体正在轻推它

    PhysX 没有“自己的想法”。它移动的原因很简单。


    假设“地板”确实是一个角度,所以它应该移动,但你希望它不移动。

    你显然做了什么:

    就像在现实世界中一样,放一些东西来阻止它移动

    一堵看不见的小墙就可以解决问题。那是 PhysX!

    【讨论】:

    • 楼层位置为X0、Y1、Z0,旋转为X0、Y0、Z0。但是当它尝试倾斜地板时,将其 Z 的旋转从 0 更改为 3,立方体向上移动(正 X,正 Z)但速度较慢......当我将旋转 Z 更改为 4 时,立方体在正 Z 上移动...
    • 完成 ;) 感谢您的帮助!
    【解决方案2】:

    通常刚体滑动发生在较低刚体的质量小于较高刚体的质量时(迫使较低的刚体向下)。质量为 80 的玩家在质量为 1 的立方体上跳跃的典型问题。在这种情况下,碰撞非常剧烈,立方体可能会飞出(不仅是滑动)。 情况与现实世界非常相似。如果您有 120 公斤(好的,好的,80 :)),请尽量保持在一盒牛奶上。 当您尝试消除这种行为时,您需要增加较低物体的质量或减少较高物体的质量或将较低刚体设置为运动学。

    【讨论】:

      【解决方案3】:

      上述解决方案不是解决问题的正确方法。 Unity 比质量具有更多的物理特征。如果您在移动或由于其他物体而滑动,您应该在刚体上添加适当的拖动值。例如,假设您有块在其他块的顶部生成,这会产生水平滑动。在我的情况下,我将阻力 1 添加到质量约为 1 kg 的物体上。这取决于场景,您应该根据自己的情况尝试不同的值。如果不重要,请不要使用更大的值和角度阻力。

      【讨论】:

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