Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何判断游戏对象是否正在移动?_C#_Unity3d - Fatal编程技术网

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;
}