Jump to content
Unity Insider Forum
Sign in to follow this  
Rokks

Triggerzone

Recommended Posts

Moinsen zusammen,

ich bendiene mich eines Triggers, welcher mir als "Zone" dienen soll.
Mit einem zweiten "Fremd"-Objekt betrete ich diese Zone und löse ein Event aus, so weit so gut.
Auf dem Zweitobjekt jedoch möchte ich eine Anzeige "im Inspektor" schaffen, die mir verrät, mit wieviel Prozent dessen Fläche ich die Zone berühre.

Standartmässig würde ich beim Entry mittels eines Rays die Mittelposition des Trigges auslesen, die Position des Fremdobjektes dagegensetzen und dessen Fläche hinzuziehen. Ich könnte  mir jedoch gut vorstellen, dass es hierfür bereits einen vorgefertigten Ansatz gibt.
Kann und mag mir jemand den richtigen Weg weisen? :)

LG
Rokks

Share this post


Link to post
Share on other sites
vor 54 Minuten schrieb Rokks:

Ich könnte  mir jedoch gut vorstellen, dass es hierfür bereits einen vorgefertigten Ansatz gibt.

Nicht wirklich, von daher ist dein Ansatz schon ganz gut.

Share this post


Link to post
Share on other sites

Hm, Schade.
Danke für die schnelle Info :)

Habe es nun recht Schmal realisiert ... vermute ich mal ^^
Beim eintreffen in den Trigger fülle ich eine Abfragevariable mit dem stehendem Wert des Triggerradius. Da es sich um ein fest zu platzierendes Objekt handelt, arbeite ich mit OnTriggerStay(). Begründung ... der Radius des Triggers ist variabel und kann sich erhöhen wie verringern.

Mit Vector3.Distance erhalte ich die tatsächliche Differenzentfernung, dividiere den Triggerradius und setze den erhaltenen Wert *100, um den prozentualen Wert des Körperanteiles zu erhalten, der sich im Bereich des Triggers aufhällt.

Share this post


Link to post
Share on other sites

Ich würde mit (wird bei einer Kollision erzeugt):
https://docs.unity3d.com/ScriptReference/ContactPoint.html
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnCollisionEnter.html

und:
https://docs.unity3d.com/ScriptReference/Collider-bounds.html

arbeiten. Allerdings weiss ich nicht, wie viele ContactPoints erzeugt werden und wie genau diese sind. Aber wenn hier alle Punkte zurückgegeben werden müsste mit Hilfe des Volumens der Colliderbounds es möglich sein, exakt des Volumen (oder die Fläche) der Volumendurchdringung zu berechnen. Ich habe da aber auch keinen fertigen Code.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×