Jump to content
Unity Insider Forum
Verdemis

UI Button reagiert nicht immer

Recommended Posts

Hallo zusammen,

 

in meinem aktuellen Projekt habe ich einige Buttons die zur Laufzeit generiert werden.

Aus einem mir aktuell nicht nachvollziehbaren Grund funktionieren die Buttons aber nicht immer zuverlässig. Man sieht zwar immer das sie gehighlighted werden wenn man draufklickt, aber die angebundene OnClick funktion wird nicht immer ausgeführt. Mal geht es auf anhieb, manchmal muss ich 5 mal klicken... und es gibt keinerlei System... manchmal funktioniert es eine ganze Session lang ohne Problem, und dann auf einmal nicht mehr. Ganz unterschiedlich.

 

Hat jemand evtl. eine Idee woran sowas liegen kann? Gibt es eine Eigenart der UI Buttons die ich nicht kenne?

 

Danke und LG

Sascha

Share this post


Link to post
Share on other sites

Nein es wird nichts überlagert. Aber ich habe eben festgestellt das Problem tritt dann auf, wenn sich die Position der Maus oder des Fingers (auf Mobile) zwischen MouseDown und MouseUp auch nur minimal verändert. Klicke ich und halte den Cursor ganz still funktioniert es tadellos. Bewege ich während des Klicks die Maus auch nur leicht, wird der onClick nicht ausgeführt.

Share this post


Link to post
Share on other sites

Guck mal, ob du irgendwas mit drag ausschalten kannst. Ich habe Unity jetzt nicht vor mir, deswegen kommt die Antwort so schwammig. :)

  • Like 1

Share this post


Link to post
Share on other sites

Ich bin nun einfach hingegangen und habe mir einen kleinen Workaround gebaut und löse die OnClick Funktion nun bei MouseButtonDown aus und schon funktioniert es tadellos.

Share this post


Link to post
Share on other sites

Nein es wird nichts überlagert. Aber ich habe eben festgestellt das Problem tritt dann auf, wenn sich die Position der Maus oder des Fingers (auf Mobile) zwischen MouseDown und MouseUp auch nur minimal verändert. Klicke ich und halte den Cursor ganz still funktioniert es tadellos. Bewege ich während des Klicks die Maus auch nur leicht, wird der onClick nicht ausgeführt.

 

Genau das gleiche Problem habe ich auch in meinem Scrollview:

es funktioniert super auf meinem samsung galaxy s4mini (wegen der niedrigen Auflösung, sind meine Buttons schön groß und der OnClick funktioniert super), ABER bei meinem Galaxy S6 (mit fast dreifacher Auflösung sind die Buttons viel kleiner und wenn mann nur minimal verzieht funktioniert der Click nicht).

 

@Verdemis: wie hast den Workaround gebaut ? (Einfach mit einer if-Abfrage das MouseButtonDown abgefragt?).

 

LG Tobi

 

EDIT: sorry Mark ^^

Edited by TobLine

Share this post


Link to post
Share on other sites

Ich bin nun einfach hingegangen und habe mir einen kleinen Workaround gebaut und löse die OnClick Funktion nun bei MouseButtonDown aus und schon funktioniert es tadellos.

Mich würde der Workaround aber jetzt auch mal interessieren ^^

 

Malzbie's Idee mit dem Drag dürfte das Problem eigentlich auch lösen. Wenn du z.B. den DragThreshold des EventSystems hochdrehst sollte es das theoretisch schon gewesen sein.

 

Du könntest es alternativ mal mit "OnPointerDown()" versuchen, falls du den Drag unbedingt so brauchst, dann bleibst du auch im GUI-EventSystem, was wahrscheinlich die einfachste und geschickteste Variante wäre. Dazu musst du ein Script an das GO hängen das den IPointerDownHandler implementiert.

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...