if语句不以c#unity执行

if语句不以c#unity执行,c#,unity3d,game-physics,C#,Unity3d,Game Physics,我试图让一个角色移动一段距离,然后当他们移动一段距离时改变方向。。。我的代码中的逻辑可能是错误的,我仍然需要解决这不是问题,问题是if语句没有执行 public class EnemyControl : MonoBehaviour { private int xMoveDirection=-1; private float x; void Start() { x=gameObject.transform.position.x; }

我试图让一个角色移动一段距离,然后当他们移动一段距离时改变方向。。。我的代码中的逻辑可能是错误的,我仍然需要解决这不是问题,问题是if语句没有执行

public class EnemyControl : MonoBehaviour
{
    private int xMoveDirection=-1;
    private float x;
    void Start()
    {
        x=gameObject.transform.position.x;
    }
    void Update()
    {
        gameObject.GetComponent<Rigidbody2D>().velocity = new Vector2(xMoveDirection,0);
        if(x==0.00){
          Debug.Log("helloimhere");
          xMoveDirection=0;
          x=x+1;
        }
公共类EnemyControl:MonoBehavior
{
private int xmovedition=-1;
私人浮动x;
void Start()
{
x=gameObject.transform.position.x;
}
无效更新()
{
gameObject.GetComponent().velocity=新向量2(xMoveDirection,0);
如果(x==0.00){
Debug.Log(“helloimhere”);
xMoveDirection=0;
x=x+1;
}

任何与浮点值的直接比较都很可能失败,您最好定义一个“足够接近”的值范围,例如
Math.Abs(x)<0.0001
这是否回答了您的问题?此时
x
的值是多少?是否可以添加类似
Debug.Log($“x={x})的内容
就在“if”@DougDawson之前,Debug在if语句之前的x值显示为4.13,但是如果你说
x
4.13
那么你为什么希望执行
if
语句呢?我试过了,它仍然没有运行if语句,所以问题是:你应该使用
if(x