要检查刚体(RigidBody)是否在移动,您需要比较刚体的位置(position)或速度(velocity)与之前的帧
Vector3 previousPosition = yourRigidbody.position;
void Update()
{
// 获取刚体的当前位置
Vector3 currentPosition = yourRigidbody.position;
// 比较当前位置和上一帧的位置
if (Vector3.Distance(previousPosition, currentPosition) > 0.01f)
{
Debug.Log("物体在移动");
}
else
{
Debug.Log("物体静止");
}
// 更新上一帧的位置
previousPosition = currentPosition;
}
这里,我们使用Vector3.Distance()
函数来计算两个位置之间的距离,然后使用一个阈值(如0.01f)来判断位置是否发生了显著变化。您可以根据需要调整此阈值。
另外,您还可以检查刚体的速度,以确定它是否在移动。例如:
void Update()
{
// 获取刚体的当前速度
Vector3 currentVelocity = yourRigidbody.velocity;
// 检查速度的大小是否超过阈值
if (currentVelocity.magnitude > 0.01f)
{
Debug.Log("物体在移动");
}
else
{
Debug.Log("物体静止");
}
}
在这个例子中,我们使用Vector3.magnitude
属性来获取速度的大小(标量值),然后使用一个阈值来判断速度是否显著大于0。