鼠标不断更新的舍入位置固定

Rounding position with mouse constant update FIXED

我正在用 C# (unity) 制作马里奥制造商风格的游戏,其中所有内容都必须对齐网格。我想在拖动它的同时,让项目卡入最靠近每个 int 的位置。

 void FixedUpdate () {
      Vector2 pos = Input.mousePosition;
      pos.x = Mathf.Round(pos.x);
      pos.y = Mathf.Round(pos.y);
      pos = Camera.main.ScreenToWorldPoint (pos);
      transform.position = pos;
 }

这对我不起作用,我已经尝试了几个小时来解决这个问题。到目前为止没有任何帮助,我浏览了我能找到的每个论坛都无济于事。请帮忙!!

我认为您应该在将像素位置更改为世界位置后对值进行舍入。 我是说,之后 pos = Camera.main.ScreenToWorldPoint (pos);

让我知道结果。 如果不行,我会考虑再试一次。

在您更改鼠标位置后更新圆角位置。

void FixedUpdate () {
     Vector2 pos = Input.mousePosition;
     pos = Camera.main.ScreenToWorldPoint (pos);
     pos.x = Mathf.Round(pos.x);
     pos.y = Mathf.Round(pos.y);
     transform.position = pos;
}