作者:花颖年华 | 来源:互联网 | 2022-12-07 03:40
在Unity场景中,想象一下
一个大的滑动物体(也许是由于某种原因滑动的"运输容器"或"沙发")
在路上有一些2米高的轻木棍轻轻地卡在地上.
在现实生活中,棒子会站在那里(首先,实际上这在PhysX中很难实现),当大物体击中它们时,
大型物体完全不受影响
棍棒会轻快地被撞掉,可能会从地面反弹一两次然后降落到某个地方
我发现在Unity中这很难做到.
通常你会说:"给大物体提供几千块的质量,而棒棒的质量只有1或2千克".
然而,我发现它确实不起作用 - 棒子倾向于旋转大型滑动物体.
如果你将大对象的角度拖动设置得很高,那么那就不是你想要的其他行为了.
在第一个例子中,我使棍子运动(所以它们会站立而不会摔倒)然后当大物体撞击它时...
protected void OnCollisionEnter(Collision collisionInfo) {
rb.isKinematic = false;
}
也许唯一的方法就是这样做
事实上,大物体的棒子完全不受物理影响
当他们触摸(触发)时,实际上只是独立地将棒随机"飞走".(棍棒只与地面相撞,风景.)
如何在Unity/PhysX环境中执行此操作?
1> 小智..:
(将我的评论转换为答案)
小物体会影响现实生活中的大物体,但只是略微(所以可能有太多棒?).或者问题可能是棍子卡在地上的方式?我用立方体(1000千克)和一些圆柱体(1千克)创建了测试场景.所有物体都只是在地面上自由站立.这里的立方体撞击圆柱体时的样子: