2016-08-13 1 views
1

Ich habe einen Animationsclip für das schwingende Schwert. In einem bestimmten Rahmen fügte ich Event hinzu. Ich möchte, wenn Spieler Schwert schwingen, in diesem Fall könnte nur der Feind sterben.Kollision im Animationsereignis erkennen

So habe ich den folgenden OnTriggerEnter-Code

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

Wenn ich versuche Funktion OnTriggerEnter hinzufügen (in Animation Clip) als Animation Ereignis, es fragt mich Collider Parameter zu übergeben, die ich nicht in der Lage bin hinzufügen .

Here is the screen shot of Add Event

Bitte helfen Sie mir, wie ich Ereignis mit Collider (als Parameter) zu einem bestimmten Rahmen hinzufügen können .. Dank

Antwort

0

Collision und Trigger Ereignisse auf ihre eigenen in jedem Frame aufgerufen werden.

Rufen Sie eine andere öffentliche Methode von Animationsereignis für Ihre Aufgabe und setzen Sie Boolean oder Enum dort, um die Kollision zu steuern, Trigger nach dem Schwingen des Schwertes.

public void SwingingSword() 
{ 
isSwingingSword = true; // make it false when not swinging the sword. 
} 

void OnTriggerEnter(Collider col) 
{ 
    hit = true; // not sure what it's job here 

    if (isSwingingSword && hit) 
    { 
    if (col.GetComponent<Collider>().tag == "enemy") 
    { 
    Destroy(col.gameObject); 
    } 
    } 
} 
+0

Schön .. Danke..für deine Hilfe :-) – amulbhatia