Unity3d Can';t使用Unity 3D物理防止球反弹

Unity3d Can';t使用Unity 3D物理防止球反弹,unity3d,physics,Unity3d,Physics,我用的是一个大小为1的球体。球有一个质量为0.01的刚体。当我旋转地面时,球会因为重力而移动(我还向球添加了一个恒力y:-1.5)。问题是球跑得快时会反弹。我尝试调整物理材质(反弹度=0和不同的摩擦力值)。如何防止球反弹并实现金属球的真实模拟?) 编辑:我想我已经发现了问题。。。地面是由盒子组成的(迷宫是自动生成的),所以它们之间似乎有“凸起”。。。我用一个大盒子作为地面对它进行了测试,效果很好 这就是问题所在:所以我认为我应该只使用一个对撞机进行地面碰撞,也许我可以使用这个资源来创建孔: 试着

我用的是一个大小为1的球体。球有一个质量为0.01的刚体。当我旋转地面时,球会因为重力而移动(我还向球添加了一个恒力y:-1.5)。问题是球跑得快时会反弹。我尝试调整物理材质(反弹度=0和不同的摩擦力值)。如何防止球反弹并实现金属球的真实模拟?)

编辑:我想我已经发现了问题。。。地面是由盒子组成的(迷宫是自动生成的),所以它们之间似乎有“凸起”。。。我用一个大盒子作为地面对它进行了测试,效果很好

这就是问题所在:所以我认为我应该只使用一个对撞机进行地面碰撞,也许我可以使用这个资源来创建孔:


试着增加质量,改变物理材料中的摩擦力,并继续测试,直到你得到想要的为止。
还有一个提示:在约束下的刚体上,勾选“冻结位置——Y轴”或“向上轴”,这通常会阻止球向上运动,也许这将有助于使用以下属性使其工作正常:


我认为Y上的恒力不是必需的,或者事实上这是导致问题的原因。

你们可以在刚体中使用约束。如果在约束中勾选“冻结Y轴位置/旋转”,则不会发生Y移动或反弹。(取决于是否在xz平面上设置了基准标高/平面)

如果这不是一个选项,那么您可以尝试增加质量和重力,也可以在上部方向不断施加恒定的附加力


你也可以像前面提到的答案一样,添加一种反弹和摩擦减小的物理材料

也许不是最有效的方法,但您可以尝试进行光线跟踪,并在每一帧将球的位置设置为命中位置(减去球体半径)。这并不漂亮,但如果所有其他方法都失败了,它会起作用。

您是否也尝试过将底层地形的反弹设置为0?你也可以在-y轴上施加恒定力的地方张贴代码吗?它可能会把你的球推到地上,然后刚体会尝试反作用,因为它不能进入一个实体。我正在使用内置的恒力脚本。如果我不在y轴上施加负力,那么当我旋转圆时球会飞起来。增加质量没有帮助,也没有冻结y位置(如果我这样做,那么当球旋转时,地面无法向上推球)如果我移除恒力,当我旋转地面时,球会飞起来。我试图增加重力,但效果与添加恒力相同。在这里,您可以看到移除恒力时发生的情况:您的配置有问题。请确认您已将物理材质指定给这两个对象(球和地面),并设置刚体属性,如我在屏幕截图中所示。记住质量应该是真实的,例如,如果球是1千克,那么地面应该是2000千克(取决于大小)。感谢您的回答。我发现了问题(但仍然没有解决方案),请查看我编辑的问题,我无法冻结y轴,因为当地面旋转时球不会移动。您是否尝试通过创建和指定新的physx材质并增加质量来调整反弹和摩擦?我尝试增加质量和重力,并调整物理材质值。但没有一个有效。