首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于1个轴,单位rigidbody2d速度随时间随机收敛为0

对于1个轴,单位rigidbody2d速度随时间随机收敛为0
EN

Stack Overflow用户
提问于 2016-10-23 05:52:28
回答 1查看 52关注 0票数 0

我做了一个非常简单的程序,它在屏幕的边缘创建边缘碰撞,然后启动一个带有冲力的circleCollider2d的椭圆。

我将所有的碰撞器(边和圆)设置为使用反弹材质,并将反弹度设置为1.0 (无限反弹)。

我有一个奇怪的问题,随着时间的推移,其中一个速度轴收敛到0。例如

代码语言:javascript
复制
this.GetComponent<Rigidbody2D> ().AddForce (new Vector2 (100, 100), ForceMode2D.Impulse);

发生的情况是,对象将开始以对角线的方式移动,但如果有足够的反弹,速度将在(100,0)和(-100,0)之间交替。当x轴变为0或y轴变为0时,都可能发生这种情况。这取决于哪一个在开始时更高。

我不确定为什么会发生这种情况。基本上在视觉上,物体将开始反弹,大约10次左右的反弹后,它将只是在一条直线上来回反弹,而不是保持另一条轴。我不知道为什么它会这么做。我没有任何约束(我也尝试约束Z轴旋转,但没有任何效果)。

所有边碰撞器以及圆碰撞器上的bouncyness都设置为1.0。刚体的质量为1,并且所有阻力系数也设置为0。其目的是让它无休止地反弹。

EN

回答 1

Stack Overflow用户

发布于 2016-10-23 06:22:04

我将在这里回答我自己的问题,因为当我观察到旋转的行为时,我才意识到为什么会发生这种情况。我完全没有想到摩擦力会参与其中,特别是在这种情况下,摩擦力每次都会导致相同的模拟。

除了将反弹度设置为1之外,还必须将摩擦力设置为0。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40197428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档