Jump to content
Unity Insider Forum

OnMouseUp für Android


Recommended Posts

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

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

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

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

  • 2 months later...

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

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...