2016-01-22 55 views
0

我的場景中有一個立方體,我想隨着玩家的觸摸旋轉並拖動它。這裏是代碼Unity5 C#:如何通過觸摸拖動來旋轉游戲對象

Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 
Physics.Raycast (ray, out hit); 

if(Input.GetMouseButton(0) && hit.collider.name == "Cube") 
{ 
    xDeg -= Input.GetAxis("Mouse X") * speed * friction; 
    yDeg += Input.GetAxis("Mouse Y") * speed * friction; 
    fromRotation = cube.transform.rotation; 
    toRotation = Quaternion.Euler(yDeg,xDeg,0); 
    cube.transform.rotation = Quaternion.Lerp(fromRotation,toRotation,Time.deltaTime * lerpSpeed); 
} 

我能夠做到100%,問題是我已經把其他幾個遊戲對象與立方體的每面牆撞機。我想要的只是玩家能夠旋轉魔方並通過點擊每個牆上的特定遊戲對象來執行一些操作。這裏是代碼

if (Input.GetMouseButtonUp(0)) 
{ 
    Ray ray1 = Camera.main.ScreenPointToRay(Input.mousePosition); 
    if (Physics.Raycast (ray1, out hit)) { 
     if (hit.collider.name == "ABC") { 
      //Perform action specific to ABC 
     } 
    } 
} 

其餘的現在,如果我嘗試轉動它運行ABC立方體(因爲肯定光線投射工作,它假設是)。我無法弄清楚我是如何實現這一點的,玩家可以通過觸摸和拖動來旋轉立方體,以及通過輕敲同一立方體的牆壁來執行某些操作。

+0

你用設備檢查過嗎?你有沒有試過這個... –

回答

0

將立方體碰撞器放在與其他對象不同的圖層中。然後調用採用layerMask的Physics.Raycast版本。