Jomnitech Geschrieben 26. Oktober 2018 Melden Share Geschrieben 26. Oktober 2018 Hallo Zusammen Ich habe ein kleines Problem das ich nicht wirklich verstehe. Ich habe einmal eine Schusswaffe die mit Raycast funktioniert und einmal eine Nahkampfwaffe die über Trigger event läuft. Ich habe ein Gegner namens "Enemy1" der hat Child Objekte Namens "HitBox1,HitBox2". Wenn ich mit dem Raycast eine Hitbox treffe, bekomme ich als rückmeldung nicht HitBox1 oder HitBox2 sondern Enemy1. Wenn ich mit der Nahkampfwaffe den Gegner treffe bekomme ich als Feedback HitBox1 oder Hitbox2 heraus. Warum ist das so? Macht mir etwas Probleme weil ich jeweils die Stats holen will um Schaden zu machen. //Raycast if (Physics.Raycast(transform.position,transform.right, out hit, range,layer_mask)) { Debug.Log(hit.transform.name); CharacterStats target = hit.transform.GetComponent<CharacterStats>(); if (target != null) { target.TakeDamage(_finalDamage); } } //Trigger void OnTriggerEnter(Collider other) { Debug.Log(other.transform.name); CharacterStats target = other.transform.GetComponent<CharacterStats>(); if (target != null) { target.TakeDamage(_finalDamage); } } Die Layers sind i.O. ich treffe auch mit dem Raycast effektiv nur die Hitbox und nicht den Enemy1 selbst. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
thewhiteshadow Geschrieben 26. Oktober 2018 Melden Share Geschrieben 26. Oktober 2018 So was ähnliches hatte ich auch mal. Das liegt glaub ich an einem Rigidbody an deinem Enemy. Das "sammelt die Collider ein". Da der Raycast über die Physik-Engine läuft, trifft er das Rigidbody mit seinen Collidern. Trigger-Events funktionieren ohne Physik und treffen daher nur den Collider. Lustig ist auch, dass OnCollisionEnter wiederum das Rigidbody treffen würde. Meine Lösung war die Events einfach weiter zu geben. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 26. Oktober 2018 Melden Share Geschrieben 26. Oktober 2018 vor 11 Minuten schrieb thewhiteshadow: Trigger-Events funktionieren ohne Physik wat Aber zum Problem: Einfach hit.collider statt hit.transform benutzen, denn hit.transform hat tatsächlich die Angewohnheit, das GameObject des übergeordneten Rigidbodys zu meinen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Jomnitech Geschrieben 26. Oktober 2018 Autor Melden Share Geschrieben 26. Oktober 2018 @thewhiteshadow@Sascha Vielen Dank für euere Antworten, hilft mir schon mal enorm weiter. Eigentlich gefällt mir die OnCollisionEnter Variante ganz gut, da ich dann automatisch den richtigen Bezugspunkt habe, egal ob es eine Kiste ist, welche keine Hitboxen hat, oder ein Gegner welcher ev. viele verschachtelte Hitboxen haben kann. Muss ich mal ausprobieren ob ich das hindeichseln kann das er die Kollision triggert ohne das er den Gegner physikalisch rumschiebt. Beim Raycast kann ich ja eine layerMask bestimmen die nicht mit den Physik Einstellungen übereinstimmen muss. Oder ev. doch den Raycast ohne Physik verwenden. Muss ich ausprobieren was sich besser eignet. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.