【发布时间】:2020-05-08 12:34:39
【问题描述】:
我有这个代码:
public class MoveCard : MonoBehaviour
{
public float speed = 1f;
public Rigidbody2D rb;
public Vector2 pos = new Vector2(6.8f,0);
public bool move = false;
void FixedUpdate(){
if (move){
//Stops Rigidbody
if (rb.position == pos){
move = false;
}
rb.transform.position += -rb.transform.right * speed * Time.fixedDeltaTime;
}
}
public void CardMovement(){
move = true;
}
}
我将其设置为当按下按钮时,CardMovement() 会启动,并且在 FixedUpdate 中我有一个 if 语句,当刚体到达某个位置时会关闭移动。 rb 移动,但在到达 Vector2 时并没有停止。我是 Unity 的新手,所以我不知道这是否是这样做的方法。
【问题讨论】:
-
我不相信
rb.position == pos每一个都是真的。我的意思是 rb.position 每fixedDeltaTime移动一定量,所以Vector2(12.092, 8.128)永远不会等于Vector2(12, 8)(组成数字)。您需要测试 equivalence 或>=