C# 对象稍微移动超过它应该停止的点(Unity 2D)

C# 对象稍微移动超过它应该停止的点(Unity 2D),c#,unity3d,boolean,operators,C#,Unity3d,Boolean,Operators,我试图让Unity2D中的一个对象停在一个特定的点上。对象将停止,但位置仍将大于/小于程序所需的位置。我需要该对象在巡逻点停止,如果该对象已通过巡逻点,则布尔值为false。我的代码如下: private void FixedUpdate() { enemyLocation = GetComponent<Transform>(); Debug.Log("Enemy Location: " + enemyLocation.position.x + "Patrol L

我试图让Unity2D中的一个对象停在一个特定的点上。对象将停止,但位置仍将大于/小于程序所需的位置。我需要该对象在巡逻点停止,如果该对象已通过巡逻点,则布尔值为false。我的代码如下:

 private void FixedUpdate()
{
    enemyLocation = GetComponent<Transform>();

    Debug.Log("Enemy Location: " + enemyLocation.position.x + "Patrol Location: " + patrolList[1].position.x);
    if (enemyLocation.position.x >= patrolList[0].position.x && enemyLocation.position.x <= patrolList[1].position.x)
    {
        inPatrolRange = true;
    }
    else
    {
        inPatrolRange = false;
    }

    // Used for randomness
    gameTime = Time.time;

    if (inPatrolRange)
    {
        Patrol();
    }

}
private void FixedUpdate()
{
enemyLocation=GetComponent();
Debug.Log(“敌方位置:+enemyLocation.position.x+”巡逻位置:+patrolList[1]。position.x”);

如果(enemyLocation.position.x>=patrolList[0].position.x&&enemyLocation.position.x为了使变换
enemyLocation
保持在巡逻范围内,您可以使用:


如果你不需要在物理上做一些事情,使用<代码>更新>代码>代替<代码> FixEddate 。你也应该考虑从更新循环中移出<代码> GETFECTOR> <代码>。< /P>当我实现这个代码时,我的对象会移动。他夹紧?还有,我用刚体速度来移动物体。

float min = patrolList[0].position.x;
float max = patrolList[1].position.x;
float x = Mathf.Clamp(enemyLocation.position.x, min, max);
enemyLocation.position = new Vector3(x, enemyLocation.position.y);