2017-02-20 4 views
0

unten ist mein Push-Skript für Unity in C#.Wie mache ich Pull-Objekt-Skript daraus?

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; 
     } 
    } 

Zuerst dachte ich, alles, was ich zu tun haben, drücken Sie einige Schlüssel und führen Sie dann genau in die andere Richtung zu schieben durch Einfügen „-“ in Vector 3 x und z, die nicht funktioniert hat. Ich habe andere Tutorials und Antworten verfolgt, kann aber immer noch nicht herausfinden.

Außerdem gibt es ein anderes Tutorial, das ich für das Ziehen von Objekten befolge, aber das ist für 2D-Spiele. Ich habe versucht, in 3D-Komponenten so viel zu konvertieren, wie ich kann, aber ich traf die Mauer mit

 Physics2D.queriesStartInColliders = false; 

Gibt es so etwas wie das Strahlen/Linien ohne Argumente (kein Linecast) in Physik überprüft? (oder Möglichkeiten zu überprüfen).

Also, wenn Sie mir helfen können mit: # 1. Beispiel für Codes basierend auf Push-Skript oder # 2. ähnliche Möglichkeiten zum Überprüfen von Strahlen/Linien wie Physics2D.queriesStartInColliders = false;

Es würde sehr geschätzt werden.

Vielen Dank für Hilfe im Voraus.

Antwort

0

Ich habe das herausgefunden, indem ich Pick-Up-Skripte geändert und alle Rotationen auf Starrkörper eingefroren habe. Ein Umweg, würde ich sagen.