2017-05-08 78 views
0

我正在C#(統一)中製作一個馬里奧製造者風格的遊戲,其中一切都必須捕捉到網格。我想,當我拖動它時,將物品卡入距離每個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; 
} 

這不適合我,我一直在嘗試幾個小時來解決這個問題。目前爲止沒有任何幫助,我已經經歷了所有我無法找到的論壇。請幫忙!!

+1

嘿那裏,如果你已經解決了這個問題,不要編輯你的問題帖子來包括答案。相反,請在下面創建一個答案帖子,詳細說明問題的原因以及解決方法。 – Serlite

+0

@Serlite對不起! – racorse

回答

2

我想你應該在將像素位置更改爲世界位置之後舍入值。 我的意思是,在 pos = Camera.main.ScreenToWorldPoint(pos);

讓我知道結果。 如果它不起作用,我會想另一個嘗試。

+0

啊哈!我只是在你提交它的時候就知道了!感謝您的回覆,而且絕對有效。需要一些睡眠來弄清楚。 – racorse

0

在您做鼠標位置更改後更新圓角位置。

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; 
}