Jump to content
Unity Insider Forum

Wischgeschwindigkeit


Ich

Recommended Posts


Hey Leute,  ich habe ein Swipe Script erstellt dass ich Wischen kann und somit die Seiten wechseln kann.
Die Seite ändert sich erst wenn ich die hälfte der anderen Seite erreicht habe.
Ich möchte aber das die Seite sich erst ändert wenn ich beim wischen eine bestimmte Distanz in einer bestimmten Zeit erreicht habe.
Ich weiß nur nicht genau wie...
Könnte mir bitte einer behilflich sein.

Danke im vorraus
 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nicht pushen. Auch wenn jetzt 24Std. überschritten sind.
Da du ja ein Script erstellt hast, womit du wischen kannst, hast du ja schon einmal den Punkt wo du beginnst zu wischen und eine Änderung ab der du sagst, dass jetzt eine Wischgeste gemacht wurde. Diese Änderung ist ja, wie du schon sagst die Entfernung vom Startpunkt und evtl. die Richtung.
Mit den Touch Befehlen geht sowas. Und mit Touch.phase siehe hier:
https://docs.unity3d.com/ScriptReference/Touch-phase.html

kannst du den Startpunkt und den Endpunkt sowie die daraus resultierende Richtung und auch Entfernung Vector2.Distance(start,ende )ermitteln.
Jetzt musst du nur noch eine Startzeit setzen, sobald der Finger sich bewegt. Hat sich der Finger weit genug bewegt, schaust du wieviel Zeit vergangen ist. Ist es im Zeitfenster, hast du gewischt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich die Komponente "Srcoll Rect (Script)" von Unity benutze gibt es eine einstellung namens "Inertia" und dazu "Deceleration Rate". Die einstellung ist so etwas was ich suche, denn wenn ich langsam wische ist es langsam und wenn ich schnell wische ist es schnell :D. Ich möchte dies jedoch selbst skripten. Ich weiß nicht wie... Ich benötige bitte hilfe.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habs dir doch schon erklärt. Aber nochmal:
Du nimmst die Zeit in dem Moment, wo du mit dem Wischen anfängst und speicherst auch die Position an dem das Wischen vermeintlich beginnt. Machst du das mit der Maus, dann ist das in dem Moment, wo du eine Maustaste drückst. Machst du das am Mobile dann ist das der Moment, wo du den Finger auf dem Screen hast.

Jetzt prüfst du zyklisch ob du in dem Zyklus genug Weg zurück gelegt hast. Wenn ja, dann bist du am Wischen und kannst das umsetzen. Wenn nein, wied die jetztige Position und Zeit wieder gespeichert und für den nächsten Zyklus genutzt.

War es ein Wischen, kannst du die Entfernung im Bezug zur vergangenen Zeit als Geschwindigkeit darstellen. Dafür musst du noch eine weiter Zeitabfrage machen, z.B. zwei Zyklen lang.
hat also das Wischen begonnen, weil du eine Mindeststrecke innerhalb einer gewissen Zeit überwunden hast, schaust du, wie weit der Move innerhalb der größeren Zeit gegangen ist.
Viel Weg = hohe Wischgeschwindigkeit.

Wischen ist auf jedem Fall zuenden, wenn du nicht weiter bewegst oder aber eiben die Maustaste los lässt oder den Finger vom Screen nimmst.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 4 weeks later...

Gut dann haste ne Geschwindigkeit errechnet. Wenn du das jetzt nicht jedes frame machst, weil dann wäre es ja nur ein Tick, sondern die Ticks zählst zwischen Maustaste drücken und Maustaste loslassen, dann solltest du eine schöne Durchschnittsgeschwindigkeit haben, die du einfach mit einem voreingestellten Wert vergleichst. Ist die Velocity kleiner, dann haste nicht gewischt, ist sie größer dann haste gewischt.
Aber du solltest das eh nicht über Ticks bzw. Frames machen, denn sowas ist ja Hardwareabhängig und wird dir auf jedem Rechner andere Werte bringen. Also nimmst du die Zeit, die vergangen ist, zwischen drücken und loslassen. Das wäre jetzt ein wischen, wie man es macht, wenn man beim eBook eine Seite umblättern würde.

Du willst aber die Geschwindigkeit am Ende des Wischvorgangs mit einbeziehen. Also musst du jetzt zyklisch messen. z.B. alle 0.3 Sekunden. Und da setzt du dann in zwei zusätzlichen Variablen die Mausposition und die istZeit neu.   Diese nutzt du dann genauso zum Geschwindigkeitsberechnen sobald du die Maustaste losgelassen hast. Diese Geschwindigkeit wäre dann nutzbar für die Dinge, die du durchs wischen bewegen willst.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...