2017-02-20 22 views
0

ниже мой сценарий push для Unity в C#.Как я могу сделать сценарий pull object из этого?

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 х и г, которые не работают. Я также слежу за другими учебниками и ответами, но до сих пор не могу понять.

Кроме того, есть еще один учебник, за которым я следую за вытаскиванием объекта, но это для 2D-игры. Я пытался конвертировать в 3D компоненты столько, сколько я могу, но я попал в стену с

 Physics2D.queriesStartInColliders = false; 

Есть ли что-то подобное, что проверяет лучи/строки без аргументов (без Linecast) в физике? (или способы проверки).

Итак, если вы, ребята, можете мне помочь: # 1. пример кодов, основанных на push-скрипте или # 2. аналогичные способы проверки лучей/линий, таких как Physics2D.queriesStartInColliders = false;

Было бы очень признательно.

Благодарим за помощь.

ответ

0

Я понял это, изменив сценарии Pick Up и заморозив все вращения на жестком корпусе. Обход, я бы сказал.