2017-02-26 2 views
0

Wie Sie wissen, OnMouseDown Arbeit am Mausklick, aber es auf jedem Collider laufen. Meine einfache Frage ist, kann ich OnMouseDown-Ereignis auf einige spezifische Collider nicht alle Collider laufen zu beschränken, da ich einige Collider für Trigger verwenden. Die ein paar Collider, die ich für Trigger verwende, wollen nicht durch onMouseDown schlagen. OnMouseDown-Ereignis auf bestimmten Kollisionen beschränken

+0

Es läuft nicht auf jedem Collider. Es läuft auf den Collidern von Gamobjekten, die ein Skript enthalten, das die 'OnMouseDown'-Nachricht implementiert. – Hellium

+0

@Hellium ja du bist richtig. Wahrscheinlich habe ich die Frage nicht gut definiert. Das Ereignis onMouseDown wird aufgrund eines Colliders, der sich direkt vor meinem Skriptobjekt befindet, nicht ausgelöst. –

+0

@Hellium ich aktualisiere die Frage –

Antwort

2

Sie können Raycasting aus der Mausposition versuchen und den Collider-Treffer erhalten Das würde ich empfehlen. Das würde den Trick machen: https://docs.unity3d.com/ScriptReference/Input-mousePosition.html Tun Sie einfach das Raycasting und testen Sie den Collider-Treffer.

Wenn Sie mehr adivce benötigen, lassen Sie es mich wissen.

Meine persönliche adivce würde sein, das mouseDownEvent mit dem Input.getMouseButtonDown (0) zu ersetzen und es innerhalb des Updates zu setzen.

+0

ja das sind die Alternativen –

Verwandte Themen