2016-04-24 72 views
1

我知道檢測碰撞的唯一方法是通過觸發器。因此,我有一個槳擊球和一個觸發器來保持比分。但是,由於某種原因,當我向上移動時,扳機槳不會隨着扳機槳的移動而稍微向後滑動,然後返回到初始位置。這是一個槳板的圖片,觸發器在正常的槳葉內。 enter image description here觸發器槳沒有在統一乒乓遊戲中的槳以下

這裏是移動槳的代碼,它們具有相同的腳本,但觸發器無法正確運行。還要注意,它在觸發板圖像右側的位置欄中表示它跟隨着槳。但它不是

 void Start() { 
    dimensions = new Vector3(transform.localScale.x, transform.localScale.y, 0); 
    transform.localScale = new Vector3(.5f, .5f, 1); 
} 

// Update is alled once per frame 
void Update() { 
    yPos = gameObject.transform.position.y + (Input.GetAxis ("Vertical") * paddleSpeed); 

    if(Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.S)) 
     playerPos = new Vector3 (gameObject.transform.position.x, Mathf.Clamp(yPos, -yClamp, yClamp), 0); 

    gameObject.transform.position = playerPos; 
} 

我想不通它爲什麼不起作用。任何幫助都非常感謝,因爲我沒有任何幫助在網上尋找,無法弄清楚。

+0

「我知道檢測碰撞的唯一方法就是通過觸發器」。我建議你在Youtube上遵循一個簡單的Unity2D遊戲。在完成自己的遊戲之前完成它。 「OnCollisionEnter」和「OnCollisionEnter2D」有區別。 Box Collider和Box Collider 2D也有區別。您目前已將「Box Collider」附加到2D遊戲對象。那應該是'Box Collider 2D'暫停你的項目,在繼續之前學習基本的Unity東西,例如碰撞和觸發。 http://unity3d.com/learn/tutorials/projects/mini-projects祝你好運。 – Programmer

回答

1

如果您只是想讓'觸發器槳'跟隨可見槳的位置,然後將觸發器槳作爲可視槳的孩子放置在水平儀中(看起來您已經完成了這項工作)。沒有其他需要。刪除已分配的腳本,使觸發器槳板以與常規槳板相同的方式移動。

另外,如果你想正確地檢測碰撞,然後使用OnCollisionEnter2D

也還可以,我知道你很可能只是希望得到這個工作,但是這可以在一個更好的方式來完成。你根本不需要子對象。只需將BoxCollider2D組件連接到可見槳,並從那裏檢測碰撞。

+1

完美謝謝! – Luke