C# 如何判断游戏对象是否正在移动?
我试过这个:C# 如何判断游戏对象是否正在移动?,c#,unity3d,C#,Unity3d,我试过这个: { if(transform.position == m_transform) { stopped = true; } m_transform = transform.position; } 但是无论对象是否移动,stopped始终为true。我做错了什么?我不能说太多,因为您没有共享太多代码,但从我看到的情况来看,您希望检测目标是否在移动 我认为这可以帮助你: if(Vector3.Distance(transform.position,
{
if(transform.position == m_transform) {
stopped = true;
}
m_transform = transform.position;
}
但是无论对象是否移动,
stopped
始终为true
。我做错了什么?我不能说太多,因为您没有共享太多代码,但从我看到的情况来看,您希望检测目标是否在移动
我认为这可以帮助你:
if(Vector3.Distance(transform.position, newTarget.position) < 0.1f){
//target stopped
}
if(矢量3.距离(变换位置,新目标位置)<0.1f){
//目标停止
}
简单地说,如果目标在范围内(意味着距离很小),那么我们假设他停止了。如果目标有
刚体组件,那么您可以检查
RigidBody.velocity == Vector3.zero
还可以检查目标变换是否已更改-
if (transform.hasChanged)
{
print("Target Moved.");
transform.hasChanged = false;
}