我创建了一个游戏,我需要对物体使用惯性。
示例:
图像显示了我所需要的一切。 当我触摸屏幕时,blueObject不再使用brownObject的位置和redObject的旋转。然后添加组件Rigidbody。物体掉下来了。我需要他沿着他的轨迹(惯性)进一步下降。
我尝试使用addForce(transform.forward * float),这不起作用。
答案 0 :(得分:0)
通过设置变换的位置,您无需使用Unity Physics引擎。从仿真开始,您的立方体必须具有刚体,这里需要的是弹簧接头(https://docs.unity3d.com/Manual/class-SpringJoint.html)或固定接头。
答案 1 :(得分:0)
释放物体时,您需要计算当前速度。
跟踪最后一帧和当前帧的位置,并使用Time.deltaTime
补偿不同的帧速率。
然后将此速度设置为物体的刚体。 (AddForce只是在操纵速度,但是取决于ForceMode,它会考虑质量等)。
public Vector3 lastPosition = Vector3.zero;
void Update()
{
// maybe do : if(lastPosition != Vector3.zero) to be sure
Vector3 obj_velocity = (lastPosition - transform.position) * Time.deltaTime;
lastPosition = transform.position;
// if you release the object, do your thing, add rigidbody, then:
rb.velocity = obj_velocity;
}
那应该产生“惯性”。速度包含方向和速度。