Ich Geschrieben 27. August 2017 Melden Share Geschrieben 27. August 2017 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 More sharing options...
Ich Geschrieben 28. August 2017 Autor Melden Share Geschrieben 28. August 2017 - Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 28. August 2017 Melden Share Geschrieben 28. August 2017 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 More sharing options...
Ich Geschrieben 28. August 2017 Autor Melden Share Geschrieben 28. August 2017 Das Problem ist, ich kann mein Finger ansetzten, bis zum Zeitfenster warten und dann wischen. Die Seite ändert sich dann nicht. PS: Ich habe das mit "Input.GetMouseButton" gemacht Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ich Geschrieben 30. August 2017 Autor Melden Share Geschrieben 30. August 2017 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 More sharing options...
Ich Geschrieben 1. September 2017 Autor Melden Share Geschrieben 1. September 2017 Bei Apps wo man hoch und runter scrollen kann wie z.B. bei Whatsapp oder YouTube App geht es auch schnell oder langsam nach oben oder unten, je nachdem wie schnell am ende beim loslassen die Wischschnelligkeit ist. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 2. September 2017 Melden Share Geschrieben 2. September 2017 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 More sharing options...
Ich Geschrieben 26. September 2017 Autor Melden Share Geschrieben 26. September 2017 Nehmen wir an der Zyklus geht 100 ticks lang (1 tick = 1fps). Beim 70 trick habe ich alle Vorraussetzungen erfüllt um zu wischen und bleibe mit der Maus bist 90 ticks stehen und lasse los, dann wischt es trotzdem... Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 26. September 2017 Melden Share Geschrieben 26. September 2017 Hast du auch den Weg der Maus mit einbezogen? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ich Geschrieben 26. September 2017 Autor Melden Share Geschrieben 26. September 2017 vor 2 Stunden schrieb malzbie: Hast du auch den Weg der Maus mit einbezogen? distance = GesetzePosition.x - input. Mouseposition.x Velocity =Mathf.Abs(distance / ticks) Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 26. September 2017 Melden Share Geschrieben 26. September 2017 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 More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.