2016-08-07 18 views
0

Video-URL für ein leichteres Verständnis - http://tinypic.com/r/28jdyyq/9Maus innerhalb OnTriggerEnter

In diesem Video können Sie mein Problem sehen, wenn das Schwert den Feind berührt .. Feind zerstört wird .. Aber ich will, wenn ich Mausklick (oder drücken nur), dann sollte ..enemy zerstören ..

void OnTriggerEnter(Collider col) 
    { 
     if (col.GetComponent<Collider>().tag == "enemy") 
     { 
      Destroy(col.gameObject); 

     } 
    } 

Dies ist mein Code, ich habe Feind und Spieler mit Schwert (mit Collider), alles ist perfekt, ich will, wenn ich Maustaste klicken dann nur Schwert töten sollte Feind,

Aber was passiert mit w Wenn ich meinen Spieler (mit dem Schwert) in die Nähe des Feindes bringe und das Schwert den Feind berühre, tötet er den Feind, ohne dass ich vom Schwert getroffen werde.

Ich versuchte den folgenden Code auch durch Hinzufügen von Mausklick-Ereignis innerhalb Trigger, aber nichts passiert. Jede Idee Bitte

void OnTriggerEnter(Collider col) 
    { 

     if (Input.GetButtonDown("Fire1")){ 

       if (col.GetComponent<Collider>().tag == "enemy"){ 

        Destroy(col.gameObject); 
       } 

     } 

    } 

Hier ist der Code für Swing -

if (Input.GetButtonDown("Fire1")) 
     { 
      anim.SetTrigger("hit"); 
     } 

Hier treffen ist Auslöser in der Animation-Controller und machen Übergang in den Animationsclip

+0

i Feind auf Mausklick zerstören wollen. (Ich habe einen Spieler mit Schwert und auf Mausklick den Spieler einfach das Schwert schwingen). Ich will, wenn das Schwert den Feind per Mausklick trifft, dann sollte der Feind sterben. aber mit meinem ersten Code, wenn ich Spieler in die Nähe von Feind und Schwert Berührungen bringen (nicht getroffen) den Feind, wird es gestorben .. Ich will Feind sollte nur sterben, wenn ich Mausklick – amulbhatia

+0

Nein, Schwert hat nicht Starrkörper. Ich kann es hinzufügen, aber was als nächstes ?? dann – amulbhatia

+0

ja, es ist nur der Code. tatsächlich, wenn ich den ersten code benutze, wird der feind zerstört. ich will, dass der feind nur auf mausklick zerstören soll. (bedeutet wenn der spieler schlägt) – amulbhatia

Antwort

0

Sie Animation Events verwenden können wahr einen Booleschen zu machen Wenn das Schwert in der Animation aufsteigt und es auf falsch stellt, wenn das Schwert ausfällt, dann prüfe das Boolean, wenn OnTriggerEnter heißt, mache eine Variable wie hit setzen Sie ihn auf wahr und falsch über Animation Ereignis

public bool hit; 

void OnTriggerEnter(Collider col) 
    { 

     if (hit){ 

       if (col.GetComponent<Collider>().tag == "enemy"){ 

        Destroy(col.gameObject); 
       } 

     }