Unity 2D Collider berührung abfrage?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
void OnCollisionEnter(Collision _collision)
{
    if(_collision.transform.tag == "Enemy" )
    {
        // Player dies
    }
}

So würde das ungefähr aussehen, solltest dem Gegner natürlich noch den Tag "Enemy" verpassen. Da du wie du selber sagst Anfänger bist lass mich dir eine Buch Empfehlung geben die einen sehr guten Einstieg bietet wenn es dich stark interessiert: http://www.amazon.de/Spiele-entwickeln-mit-Unity-3D-Games/dp/3446439390


Brotomuntus 
Beitragsersteller
 10.04.2015, 09:22

Danke! Ich denke, da es mir recht viel Spaß macht und es manchmal schwer ist sich alles zu ergoogeln, werde ich mir vielleicht bald das Buch zulegen. Guter Tipp!

Zunächst brauch eines der Objekte einen Rigidbody2D. (Entweder dein Spieler oder der Gegner) dann brauchen beide Objekte einen 2D Collider. (einen Box Collier z.b.) Nun setzt du den Collider auf "IsTrigger". Einfach den Haken setzen. In deinem Script kannst du jetzt ganz einfach abfragen, ob ein Objekt in den Collider trifft. Das machst du so:

void OnTriggerEnter(Collider hit)
{
    if(hit.gameObject.tag == "Enemy" )
    {
        // Spieler bekommt schaden
    }
}

Brotomuntus 
Beitragsersteller
 09.04.2015, 13:50

Geht irgendwie nicht... Woran kannst liegen? Sonst aber gut und einfach erklärt. Danke!

dosenbiiir  09.04.2015, 14:49
@Brotomuntus

ehmm wahrscheinlich hast du vergessen (bzw ich habs auch nicht geschrieben) den Gegner mit dem Tag "Enemy" zu versehen.

Falls du nicht weißt wie das geht, beschreibe ich es dir mal: Also den Gegner auswählen, dann oben im Inspector auf Tag und da dann auf "Add Tag". Dann gehst du auf das Plus und benennst den Tag "Enemy".  Nun wählst du nochmal dein Gegner aus und gehst wieder auf Tag und dort kannst du den nun deinen Gegner Tag auswählen.

Ich hoffe es war einigermaßen verständlich.

LG dosenbiiir

Brotomuntus 
Beitragsersteller
 09.04.2015, 22:49
@Brotomuntus

Also tags zuordnen und erstellen soweit war ich schon. Müssen die Objekte den gleichen layer haben? Wie auch immer mit der Beschreibung von BlackArma hats geklappt. Muss man vielleicht, wie ich das bei BlackArmas Methode auch machen musste, noch irgendwo 2D hinterhängen?

dosenbiiir  10.04.2015, 22:37
@Brotomuntus

Ach mist ja sorry, das muss ein OnTriggerEnter2D sein weil du ja einen 2D Collider verwendest. Hatte den Code nach dem absenden nochmal neu geschrieben, damit der besser eingerückt war und dann hab ich das wohl vergessen wieder zu schreiben. Sorry ^^  Ja du kannst auch einfach die Methode von BlackArma benutzen, bei seinem Code wird halt überprüft ob 2 Objetke kollidieren und bei meiner ob ein Objekt in den Collider eintrifft. Macht keinen großen Unterschied :D