2014-11-04 96 views
1

我在互聯網上搜索了這個,但我仍然沒有找到我想要的答案。如何使用觸摸拖動gameObject(unity2d)

所以,我有一個2D平鋪遊戲,每個瓷磚位置是1.25的倍數,例如7.5,3.75。將會有一名球員在球場上行走,並且我想通過拖動來控制球員,如果你鬆開了球門,它將完全在一個貼磚上,而不是在貼磚之間。現在,我甚至無法弄清楚如何通過觸摸來拖動gameObject。任何人都可以幫助我並向我解釋如何做到這一點?

+0

我不想要代碼,我只是想讓別人向我解釋它應該如何工作,邏輯和代碼的結構應該如何@FunctionR – 2014-11-04 06:28:13

+0

如果是這樣的話,那麼看看我的答案。我就是這麼做的。 – FunctionR 2014-11-04 06:34:15

回答

1

您需要在計劃移動的每個對象上都有碰撞器。然後創建一個課程,其唯一目的是發射一個Raycast。檢測觸摸發生的時間。然後發射Raycast。

RaycastHit hit; 
if(Physics.Raycast(ray, out hit, 100)) 
    Debug.DrawLine(ray.origin, hit.point); 

你會發現你有什麼你hit;你可以發送消息給那個特定的對象。

hit.collider.SendMessage("move"); 

所擊打的對象中,您現在可以使用觸摸位置來更新transform.position的座標。