xXSiggiXx Geschrieben 27. August 2016 Melden Share Geschrieben 27. August 2016 Hallo ich bin noch recht neu mit Unity und probiere grad auf Android das drücken eines Buttons zu zählen. Wenn ich mit onclick probiere, bekomme ich immer so zwischen 20 und ein paar Hundert mitgezählte auslösungen bei einmal drauf-touchen. Ich dachte an sowas wie OnMouseUp für touch. Quasi ein OnTouchUp oder so. Gibt es sowas oder Ähnliches? Oder wie kann ich einen Button auf Android 1x Auslösen? Wie macht man sowas? Gruß Siggi Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MaZy Geschrieben 27. August 2016 Melden Share Geschrieben 27. August 2016 Also es gibt OnMouseDown machst ist es EINMAL touchen eigentlich. OnMouseDown - OnMouseDown is called when the user has pressed the mouse button while over the GUIElement or Collider. OnMouseDrag - OnMouseDrag is called when the user has clicked on a GUIElement or Collider and is still holding down the mouse. OnMouseEnter - Called when the mouse enters the GUIElement or Collider. OnMouseExit - Called when the mouse is not any longer over the GUIElement or Collider. OnMouseOver - Called every frame while the mouse is over the GUIElement or Collider. OnMouseUp - OnMouseUp is called when the user has released the mouse button. Die alle funktionieren mit touch auch. Edit: Ich sehe gerade es geht um button. Da ist es eigentlich auch nur üblich, dass es eigentlich einmal gezählt werden sollte. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 27. August 2016 Melden Share Geschrieben 27. August 2016 Ansonsten (ich beschäftige mich auch gerade damit), sollte es machbar sein mit den Parametern der Touch-Variable: - phase, hier sollte als Äquivalent zur GetMouseButtonDown() die Phase auf "Began" stehen - tapCount, hier sollte sollte als Äquivalent zur GetMouseButtonDown() die Anzahl auf >=1 stehen Für GetMouseButtonUp(): - phase, hier sollte als Äquivalent zur GetMouseButtonUp() die Phase auf "Ended" stehen Ansonsten schau dir auch einmal das Asset-Package CrossPlatfromInput (für Android, iOS ...) an. Es bietet bereits vorgefertigte Standard-Controls an: z.b. CrossPlatformInputManager.GetButtonDown("Jump") Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
xXSiggiXx Geschrieben 29. August 2016 Autor Melden Share Geschrieben 29. August 2016 Hallo, danke für die Antworten. Ich hab es letztlich so gelöst und es funktioniert :-) countButton.onClick.AddListener (() => { if(Input.GetMouseButtonUp(0)) { count++; } }); wobei Unity beim builden meint Zitat Game scripts or other custom code contains OnMouse_ event handlers. Presence of such handlers might impact performance on handheld devices. UnityEditor.HostView:OnGUI() scheint also nicht so optimal zu sein :-/ Gruss Siggi Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Overdozed (Dimitri) Geschrieben 20. November 2016 Melden Share Geschrieben 20. November 2016 Versuch mal bitte folgendes. Erstelle einen Text und ein Button. Und ein Script: using UnityEngine.UI; public class TouchController{ public Button _actionButton; public Text _text; private int _touchCount = 0; void Start { _text.text = _touchCount.toString(); _actionButton.OnClick.AddListener(() => { _touchCount += 1; _text.text = _touchCount.toString(); }); } } Wenns dann nicht funktioniert und du immer noch einen Error angezeigt bekommst, dann muss das Problem an etwas anderes liegen. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.