2017-02-20 26 views
0

下面是我在c#中的Unity推腳本。如何使拉對象腳本不在此列?

public float pushPower= 2.0f; 

    void OnControllerColliderHit (ControllerColliderHit hit) 
    { 
     Rigidbody body = hit.collider.attachedRigidbody; 

     if (body == null || body.isKinematic) 
      return; 

     if (hit.moveDirection.y < -0.3f) 
      return; 

     if(hit.collider != null && hit.collider.gameObject.tag == "PullThis" 
     && Input.GetKeyDown(KeyCode.E)) 
     {  
      Vector3 pushDir = new Vector3 (hit.moveDirection.x, 0, hit.moveDirection.z); 
      body.velocity = pushDir * pushPower; 
     } 
    } 

起初我還以爲,我所要做的就是按一些鍵,然後做完全插入推的另一種方式的「 - 」矢量3 x和z,沒有工作。我一直在關注其他教程和答案,但仍然無法弄清楚。

此外,還有另一個教程,我拉動物體,但這是2D遊戲。我一直在想轉換成3D組件盡我所能,但我擊中

 Physics2D.queriesStartInColliders = false; 

牆壁是否有類似的東西,檢查光/線沒有物理參數(不Linecast)? (或者檢查方法)。

所以,如果你們可以幫助我:#1。基於push腳本或#2的代碼示例。類似的方法來檢查像Physics2D.queriesStartInColliders = false;

這將不勝感激。

感謝您的幫助。

回答

0

我想通過修改拾取腳本和凍結剛體上的所有旋轉來解決這個問題。我會說,繞道而行。