2016-05-07 14 views
1

Wenn ich auf ein von mir erstelltes UI-Bild klicke, funktioniert die Funktion 'void OnMouseDown()' nicht! Dinge, die ich habe versucht:Unity 2D - OnMouseDown() funktioniert nicht

  1. Liste item
  2. es in einer Leinwand
  3. reimporting Vermögenswerte setzen
  4. z Einstellung
  5. Setzbox Collider in der guten Größe Kasten
  6. Einstellung auf -1 Collider 3D statt 2d Nichts davon funktionierte für mich, bitte hilf mir!

Mein Skript:

public class btnPlay : MonoBehaviour, IPointerDownHandler { 

    Vector3 pos; 

    // Update is called once per frame 
    void Update() { 
     pos = new Vector3 (Screen.width/4.6f, Screen.height/1.58f, -1f); 
     transform.position = pos; 
    } 

    void OnPointerDown(PointerEventData p) { 
     Debug.Log ("X"); 
     SceneManager.LoadScene ("Level"); 
    } 
} 
+0

seine 'OnPointerDown (PointerEventData)' für UI (eigentlich das EventSystem hinter der neuen UI). Wenn das fragliche UI-Element OnPointerDown nicht standardmäßig bereitstellt, können Sie die 'IPointerDownHandler'-Schnittstelle implementieren, die in' UnityEngine.EventSystems' zu finden ist (es ist wirklich einfach, es klingt nur kompliziert) – yes

+0

Wenn ich die Schnittstelle hinzufüge, bin ich Erhalten dieses Fehlers in der Einheit: * 'btnPlay 'implementiert nicht den Schnittstellenmember' UnityEngine.EventSystems.IPointerDownHandler.OnPointerDown (UnityEngine.EventSystems.PointerEventData)' und den besten Implementierungskandidaten 'btnPlay.OnPointerDown (UnityEngine.EventSystems.PointerEventData) 'in nicht öffentlich * btnPlay ist das gameObject, dem das Skript – D4NieLDev

+0

zugeordnet ist. aber wenn es ein Knopf ist, warum nicht einen Knopf benutzen? Es hat alles, und Sie können einfach ein Ziel im Inspektor zuweisen. – yes

Antwort

0

gerade der addierte Schnittstelle IPointerDownHandler und using UnityEngine.EventSystems als ich die Methode public geändert. Danke an @yes für die Antwort