您可以使用類似什麼是對這個答案http://answers.unity3d.com/questions/567432/click-and-drag-script.html
void OnMouseDown() {
_lockedYPosition = screenPoint.y;
offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
Screen.showCursor = false;
}
void OnMouseDrag()
{
Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset;
curPosition.x = _lockedYPosition;
transform.position = curPosition;
}
void OnMouseUp()
{
Screen.showCursor = true;
}
這裏重要的是要了解使用的鼠標功能寫入。當在某個對撞機上檢測到某些鼠標輸入時,會調用這些函數。所以你需要一個附加在game腳本上的碰撞器,這個腳本就是這樣的。例如,當按下按鈕時,OnMouseDown被調用,只有一次,OnMouseDrag被調用每一幀,該按鈕仍然被按下,並且OnMouseUp僅在用戶釋放按鈕時調用一次。
看看文檔,這些方法有很好的描述和解釋!
測試的代碼,我得到分號的錯誤,我通過將半冒號2個載體3的,但以後解決這些問題:我得到一個錯誤的所有的「空洞」的。它說'空'不是一個有效的宏。我試圖修復錯誤,但新的不斷新芽... – ShowmenTv 2014-09-24 04:14:15
另外,我用我的遊戲鎖定相機,你的代碼會影響我的相機,並不能刪除相機代碼? – ShowmenTv 2014-09-24 04:15:24
這不是完整的代碼。這只是您如何使用這些方法獲取鼠標事件的示例。你正在使用UnityScript。這些例子是C#。完整的代碼在鏈接上的答案。如果您對Unity不熟悉,請嘗試使用這些方法來了解它們的工作方式。如果您只是複製並粘貼代碼,您將始終遇到錯誤。附加一個腳本到一個gameObject,附加一個碰撞器,並在腳本寫入函數OnMouseDown(){Debug.Log(transform.position)}中,你應該看到在控制檯上打印的對象的位置 – limoragni 2014-09-24 16:05:51