2017-06-26 3 views
0

Ich arbeite an einem Maus-Manager-Skript. Ich möchte in der Lage sein, auf das instanziierte Textobjekt zu klicken und es tun zu lassen und etwas anderes zu machen, wenn ich mit der rechten Maustaste klicke. Problem ist, dass Sie einen Parameter nicht an einen Ereignistrigger OnCLick senden können und dass das Senden der Basisereignisdaten Ihnen nicht anzeigt, auf welche Schaltfläche geklickt wurde. Ich kann nicht einfach Update verwenden, weil ich nur möchte, dass sie mit der rechten Maustaste auf das Textobjekt klicken, nicht irgendwo, besonders da ich mit der rechten Maustaste das Objekt löschen möchte. Ich habe geschaut und geschaut, man würde meinen, das wäre ein genug verbreitetes Problem, um eine Lösung zu finden, aber leider.Einheit Rechtsklick außerhalb des Updates

Ich habe bereits einen OnEnter und OnExit, der die Farben des Textes ändert. Jeder hat eine Lösung? Danke!

Antwort

1

Für den Fall, dass jemand anderes ihre Haare über diese Art von Problem gezogen hat. Ich habe endlich eine Lösung gefunden und es funktioniert sehr gut. Also werde ich es teilen.

using UnityEngine; 
using UnityEngine.EventSystems; 
using UnityEngine.Events; 

public class RightClick : MonoBehaviour, IPointerClickHandler 
{ 

    public UnityEvent leftClick; 
    public UnityEvent middleClick; 
    public UnityEvent rightClick; 

    public void OnPointerClick(PointerEventData eventData) 
{ 
    if (eventData.button == PointerEventData.InputButton.Left) 
     leftClick.Invoke(); 
    else if (eventData.button == PointerEventData.InputButton.Middle) 
     middleClick.Invoke(); 
    else if (eventData.button == PointerEventData.InputButton.Right) 
     rightClick.Invoke(); 
} 

}