2017-03-16 81 views
1

我是Unity新手,我對基本觸摸操作沒有可選的自動轉換爲鼠標有點驚訝。好吧,我已經後2小時搜索發現至少沒有..不管怎麼說..我有以下腳本來拖動一個2D精靈:Unity 3D中onMouseDrag的簡單觸摸

void OnMouseDrag() 
{ 
    if (dragEnabled) { 
     Vector3 point = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, (transform.position.z - Camera.main.transform.position.z))); 
     point.z = transform.position.z; 
     transform.position = point; 
    } 
} 

相當簡單明瞭.. 但現在我需要做這項工作對於觸摸,但我發現每一個解決方案是從2011年,失敗的工作和/或幾十行長..

有沒有一種簡單的方法來「轉換」到移動,或,甚至更好,使一個適用於這兩種情況的解決方案?

+1

看到我的問題在這裏:http://stackoverflow.com/a/41392130/6786634我認爲這已經有一個答案。 –

+0

這是用於UI的權利?我正在尋找拖動非UI的精靈 – raphadko

+1

新的UI API可用於移動和桌面。看到它在那裏描述的帖子評論,答案也有非UI對象。 –

回答

1

正如@DennisLiu所說:如果你看看@Programmer's answer的結尾,你會發現用3D對象(或簡單的非UI對象)來實現它的方法。最簡單的方法來實現你要尋找的是使用EventSystem組件與PhysicRaycaster(相同默認GraphicRaycaster用於UI光線投射,但3D對象):

  • 添加PhysicRaycasterMainCamera對象(這種那些需要相機
  • 在對象上添加的EventSystem你想
  • 添加InputModule(可獨立觸摸一個在你的情況下)相同的對象的EventSystem組件

然後你只需要訂閱事件@Programmer解釋。
您可以找到支持事件的列表here