微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使刚体在 unity2d 中移动?

如何解决如何使刚体在 unity2d 中移动?

我的 unity 项目中有一个带有 circleCollider 的刚体 2d。游戏开始时,用户可以按左右箭头来加速或减速球。但是一旦球静止,即使施加了巨大的扭矩,球也不会开始移动。

enter image description here

rigidbody2d 值如下:
质量 1,线性阻力 0.1,角阻力 0.05,重力比例 1

floor的物理material2d值如下:
摩擦 0.4,弹性 0.5

我用这条线来增加扭矩:

float torque = Input.GetAxis("Horizontal") * rotationSpeed * Time.deltaTime;
ballRigidBody2D.AddTorque(torque);

这里的扭矩值大约是 10000 - 100000

编辑:刚才我在场景视图中注意到,每当我按向左或向右箭头时,它会突然旋转一个角度然后停止。但是,当我松开钥匙时,它开始像陀螺一样快速旋转几秒钟,然后最终停止。 (但在做所有这些马戏时它不会移动一英寸。)

解决方法

您首先需要了解的是 AddTorque 添加了一个旋转力,并且由于它是一个力,因此您需要它的组成部分:


float torque = Input.GetAxis("Horizontal");

ballRigidBody.AddTorque (torque  * rotationSpeed * Time.deltaTime);


在 AddTorque 中乘以扭矩以使其正常工作。

然后在固定更新中添加您的扭矩,以更好地处理物理问题。还尝试在球上添加一种零摩擦材料,这可能会导致一些问题。

确保球和地板上有一个碰撞器和 2 个刚体

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。