ベクトル同士の距離が0.5f以下になったらというif文が成立しない理由が知りたい

内容

画像の白い丸の位置に赤いオブジェクトが移動して距離が0.5f以下になれば次の白い位置に移動するという処理を組んで居るのですが、1.0f以下という処理で上手くif文の内部が実行されますが。0.5fだと何が悪いのでしょうか?

ログ

この行の無限ループです

Distance to point: 0.5009107
direction: (0.0051062084, -0.99998677, -0.00051404786)

Distance to point: 0.5009107
direction: (0.0051062084, -0.99998677, -0.00051404786)

Distance to point: 0.5009107
direction: (0.0051062084, -0.99998677, -0.00051404786)

Distance to point: 0.5009107
direction: (0.0051062084, -0.99998677, -0.00051404786)

環境

OS: Ubuntu
Godot: v4.6 C#


https://cdn.discordapp.com/attachments/1500382395197558825/1500382396103528508/Enemy.cs?ex=69f83b7e&is=69f6e9fe&hm=6c3c346a5b75cd84d5208f3e3bba072f04f54cc3502ad35126035886a29c717e&


from Discord by amagichan00

追記 知りたいこと ですが 距離が0.5009107 以下にならない原因が知りたい


from Discord by amagichan00

・ XYZの三軸共移動していますか?
XZ平面の移動で赤いオブジェクトのサイズが1,1,1でない場合の原点と白いsphereの原点が重ならない可能性があったりする?とか思いました。


from Discord by pkaichi

えっっと、コリジョンは存在しないのでぶつかる要因がありません。


from Discord by amagichan00

成程原点は重なる事ができる想定なんですね


from Discord by pkaichi

そうすると移動のロジックで赤いオブジェクトの座標の移動量が問題になりそう?


from Discord by pkaichi