MaZy Geschrieben 23. August 2019 Melden Share Geschrieben 23. August 2019 Hallo ich benutze Input.GetAxis("Mouse ScrollWheel") um beim Schiff die Düsen zu steuern. Es funktioniert im Editor super und da kommen werte raus wie 0.1 oder 0.2, aber beim Build da kommt meistens 0 raus und dann irgendwann zufällig kommt 0.1 oder. Ich muss also dauerhaft scrollen, damit irgenwann endlich ein Wert unter oder über 0 kommt. Wie kann man das Problem beheben? Benutze version 2019.1.9f void Inputs() { float mwheel = Input.GetAxis("Mouse ScrollWheel"); nextSpeed = 0f; if (mwheel > 0) { nextSpeed = 1f; } else if (mwheel < 0) { nextSpeed = -1f; } } Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 24. August 2019 Melden Share Geschrieben 24. August 2019 Wie oft fragst du denn den Wert ab? Es ist ja so, dass die Maus nur wärend des drehens Werte !=0 übergibt. Danach ist der Wert wieder 0. Also da ist irgendeine Taktung im System, denn wenn du schnell drehst kann auch ein Wert von 0.3 raus kommen. Kann es sein, dass du ein zweites Eingabegerät angeschlossen hast, welches den gleichen Kanal bedient und von Unity vielleicht gleichzeitig mit ausgelesen wird? Hast du mal Input.mouseScrollDelta versucht? Ich habe eben mal einen schnellen Test gemacht und in der Update einfach das ScrollWheel abgefragt und darüber einfach nur nen Klotz bewegt. Bei mir geht es im Build genauso wie im Editor. Es ist aber mit V2018.2.5f1 getestet worden und ich habe auch keine Änderungen am Inputmanager vorgenommen. Hast du ne ältere Unityversion auf der Platte mit der du mal einen einfachen Test machen kannst, um sicherzustellen, dass es kein Bug von 2019 ist? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MaZy Geschrieben 24. August 2019 Autor Melden Share Geschrieben 24. August 2019 Komischerweise nach dem ich Einkaufen war (gestern) und wieder zurück kam funktionierte es wieder normal. Also alles normal wie im Editor sowohl auch im Build. Ich verstehe echt nicht, was das Problem war. Ich frage das in Update ab. War auch mal in FixedUpdate drinne. Eine zweite Maus oder ähnliches hab ich nicht. Also mit mouseScrollDelta hab ich auch versucht. Da passierte das gleiche. Ja ich habe schon daran gedacht und auch mal die variable addiert. Also hatte ich mwheel += usw. benutzt. Das Ergebnis war gleich. Ja hab ein paar ältere hab aber noch nicht getestet. Aber jetzt gehts ja komischerweise. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
malzbie Geschrieben 25. August 2019 Melden Share Geschrieben 25. August 2019 Das sind die Fehler, die ich liebe! Irgendwas wird wohl gestört haben. Bin mal gespannt ob es wieder passiert. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
devandart Geschrieben 28. August 2019 Melden Share Geschrieben 28. August 2019 Ich kann mir vorstellen, dass das Problem bei FixedUpdate passierte. Je nachdem wie groß der Unterschied zwischen FPS und Physics ticks ist. Wenn Du im einen Update() Mouse Wheel != 0 hast, im nächsten Update() dann wieder == 0 und dann wird erst FixedUpdate() ausgeführt, kommt immer 0 raus. Eventuell auch ein verlorener Fokus zum Spiel?! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MaZy Geschrieben 4. September 2019 Autor Melden Share Geschrieben 4. September 2019 Am 28.8.2019 um 15:37 schrieb devandart: Ich kann mir vorstellen, dass das Problem bei FixedUpdate passierte. Je nachdem wie groß der Unterschied zwischen FPS und Physics ticks ist. Wenn Du im einen Update() Mouse Wheel != 0 hast, im nächsten Update() dann wieder == 0 und dann wird erst FixedUpdate() ausgeführt, kommt immer 0 raus. Eventuell auch ein verlorener Fokus zum Spiel?! Ich hab bei beiden versucht. Ging nicht. Fokus war da, weil alle movement also auch AddForce wird ausgeführt, sonst sollte es nicht tun. Generell tue ich meine Inputs nicht in den FixedUpdate rein. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Hermetes Geschrieben 3. Oktober 2019 Melden Share Geschrieben 3. Oktober 2019 Mazy, habe bei mir die ScrollWheel so gelöst. Mit y dran , und Speed. float mouseWheelRotation; private void RotateFromMouseWheel() { mouseWheelRotation += Input.mouseScrollDelta.y; currentPlaceableObject.transform.Rotate(Vector3.up, mouseWheelRotation * 10f); } 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.