2014-09-23 173 views
0

我一直在閱讀其他線索,但解釋已經超過了我的腦海。我希望能夠點擊我的遊戲平臺並拖動它們,但僅限於X軸。我已經閱讀了一些關於雷射的內容,但我甚至不知道如何開始。這個代碼幾乎沒有代碼,所以請幫助我,儘量保持解釋簡單,如果可以的話。如何僅在Unity3D上使用鼠標在X軸上移動對象?

pragma strict 

function Start() { 

} 

function Update() { 

transform.position = Vector3.x(); 

} 

回答

0

您可以使用類似什麼是對這個答案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僅在用戶釋放按鈕時調用一次。

看看文檔,這些方法有很好的描述和解釋!

+0

測試的代碼,我得到分號的錯誤,我通過將半冒號2個載體3的,但以後解決這些問題:我得到一個錯誤的所有的「空洞」的。它說'空'不是一個有效的宏。我試圖修復錯誤,但新的不斷新芽... – ShowmenTv 2014-09-24 04:14:15

+0

另外,我用我的遊戲鎖定相機,你的代碼會影響我的相機,並不能刪除相機代碼? – ShowmenTv 2014-09-24 04:15:24

+0

這不是完整的代碼。這只是您如何使用這些方法獲取鼠標事件的示例。你正在使用UnityScript。這些例子是C#。完整的代碼在鏈接上的答案。如果您對Unity不熟悉,請嘗試使用這些方法來了解它們的工作方式。如果您只是複製並粘貼代碼,您將始終遇到錯誤。附加一個腳本到一個gameObject,附加一個碰撞器,並在腳本寫入函數OnMouseDown(){Debug.Log(transform.position)}中,你應該看到在控制檯上打印的對象的位置 – limoragni 2014-09-24 16:05:51