2016-11-21 5 views
0

Gibt es eine Möglichkeit zu überprüfen, ob sich zwei Objekte (rect transforms) mit Rotation überlappen? Ich habe versucht, es mit recttransform.rect zu überprüfen, aber es funktioniert nur, wenn die Rotation 0 ist. Kann mir jemand helfen? Danke im Voraus!Einheit prüfen, ob sich zwei gedrehte Objekte überlappen

if (myrecttransform.rectTransform.rect.Overlaps(line.GetComponent<RectTransform>().rect)){ 
    //overlap 
} 
+0

Wie Sie Overlap benutzt haben. Können Sie den Code teilen? –

+0

Ich habe den Beitrag aktualisiert –

+0

Funktioniert es genau, wenn die Rotation 0 ist? –

Antwort

2

Fügen Sie ihnen Collider und Tags hinzu und prüfen Sie, ob es zu einer Kollision gekommen ist und vergleichen Sie Tags.

Wenn es ein 2d Projekt dann können Sie einfach zu ihnen hinzufügen Rigidbody2D und verwenden Sie dann nur diese gameObject.renderer.bounds.Intersects(object2.renderer.bounds)

+0

Aber wie macht man es ohne Colliders? Ich erstelle eines meiner Objekte aus dem Prefab, so dass ich collider nicht korrekt einstellen kann. –

+1

Sie können einfach alles, was Sie möchten, Ihrem Fertighaus zuweisen, sowohl bei der Kompilierung als auch bei der Laufzeit (über Skripte). Wenn Sie dies ohne Kollisionen tun möchten, müssen Sie eine mathematische Formel finden, um sich überschneidende Ebenen im 3D-Raum zu finden. Sie können auch Colliders zuweisen und 'Bounds.Intersects' verwenden. – FCin

+0

Danke, aber ich arbeite mit 2D-UI-Objekten, nicht mit 3D. Vielleicht gibt es einen Weg, es in 2d zu tun? –

Verwandte Themen