Sascha Geschrieben 14. April 2014 Melden Share Geschrieben 14. April 2014 (bearbeitet) So, ich dachte, ich schreibe mal über die Fortschritte meines Inputsystems. Motiviert ja auch irgendwie noch ein Stück, weiter zu machen Mein Input-System hat folgende Features: Nie wieder Unity Input Manager! Meine Input-Achsen und -Buttons sind ScriptableObjects. Außerdem gibt's auch InputFields. Buttons geben bools, Achsen floats und Fields Vector2 zurück. Damit erspart man sich new Vector2(Input.GetAxis(...), Input.GetAxis(...)). downFixed für Buttons. Input.GetButtonDown sollte man nie in FixedUpdate oder OnTriggerStay benutzen. Mit meinen Buttons ist das kein Problem. XInput-Support. Endlich mal 360-Gamepad richtig nutzen. Mit Vibration und allem. Keycodes eingeben? Mit String? Pah. Gutes altes Button Klicken + Taste drücken und fertig. Codebeispiel: public InputAxis accelerate; void Update() { rigidbody.AddForce(Vector3.forward * accelerate.value); } Ach ja, schön erweiterbar ist es auch noch. Du hast einen eigenen InputButton? Kein Problem: public class MyInputButton : InputButton { public override bool isPressed { get { return WoherMeinBooleanKommt(); } } } Bereits fertig: Maus und Tastatur-Support XInput-Support (leider natürlich nicht im WebPlayer) Noch auf'm Plan: Einfach zu benutzendes Input-Optionsmenü für Ingame. Den Unity Launcher benutzt man ja dann nicht mehr Kleine Verbesserungen hier und da... wie immer Wird schwierig: RawInput-Controller, also alle anderen als den 360-Controller, vernünftig umsetzen. Das wird schwer bis gar nicht Cross Compilen und höchst wahrscheinlich nicht im Webplayer laufen. Ich hab ja schon beim Mausrad Kompromisse gemacht. Wird da vermutlich ähnlich sein. Was ich mich frage: Wie sind die Inputsysteme so, die es im Asset Store bereits gibt? Hat da jemand Erfahrungen gemacht? Klingt meine Beschreibung soweit interessant? Ansonsten poste ich hier einfach Updates bearbeitet 14. April 2014 von Sascha 3 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Mark Geschrieben 14. April 2014 Melden Share Geschrieben 14. April 2014 Ich hab leider keine Erfahrung was die input Systeme angeht, aber je einfacher ich das Zeugs verwenden kann umso besser. Deswegen ein paar Fragen und/oder Anregungen dazu. Ich sehe an deinem beispiel dass ich ein ScriptableObjekt als public Variable haben muss die ich dann wohl per Inspektor zuweisen muss. Planst du da auch was anderes. Hast du dann auch ein paar beispiele dazu? SaschasInputSystem.GetAxis(...) : Vector3 Ich stehe unheimlich auf so wenig wie möglich selbst machen und einfach nur verwenden, daher: Als Anregung: [MapKey("Fire", KeyState.Press)] private bool shouldFire; [MapAxis("SomeAxis")] private Vector2 moveVector; void Update() { if(shouldFire) Fire(); Move(moveVector); } Wäre praktisch wenn es solche Automatismen gäbe, zumindest aus meiner Sicht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
MadLion Geschrieben 14. April 2014 Melden Share Geschrieben 14. April 2014 Ja, es klingt interessant. Ich bin gespannt was daraus wird. Am interessantesten finde ich natürlich das Binding zur Laufzeit per Tastendruck, so wie man es eben aus Spielen gewohnt ist. Ich kenne leider keine Inputsystem aus dem Assetstore. Daher kann ich dazu leider wenig sagen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Schlumpf Geschrieben 14. April 2014 Melden Share Geschrieben 14. April 2014 (bearbeitet) nice2have : mouse x+y sensity einstellbar nice2have² : doppelbelegung von funktionen ( mittlere maus oder R taste = nachladen z.b. ) nice2have³ : x und y achse unabhängig voneinander umdrehen ( rechts is links ) bzw ( oben is unten ) bearbeitet 14. April 2014 von Schlumpf Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 14. April 2014 Autor Melden Share Geschrieben 14. April 2014 @Marrrk: Ouh, Annotations. Das sieht unheimlich sexy aus Allerdings passt das so gar nicht ins aktuelle Konzept. Vielleicht bastele ich irgendwann noch eines, dann würde ich das damit ausprobieren wollen. Ich finde den Umweg über ScriptableObjects aber auch ganz gut, da es die Input-Verknüpfungen aus dem Code zieht und keine Strings benutzt. .....aber klasse aussehen tut deins ja Was ich noch überlegt hatte, sind implicits. Also statt axis.value einfach nur noch axis. Werde ich vermutlich einbauen. @Schlumpf: Joa, kein Ding. Dafür habe ich schon eine besondere Art von InputFoo-ScriptableObjects. Man erzeugt zwar ziemlich viele ScriptableObjects bei der Angelegenheit (bei deinem Beispiel die beiden Buttons + das eine, das beide vereint), aber dafür sind die viel leichter zu editieren als mit Unitys Input Manager. Das geht schon 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Schlumpf Geschrieben 14. April 2014 Melden Share Geschrieben 14. April 2014 preis ? sample scene dabei ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 14. April 2014 Autor Melden Share Geschrieben 14. April 2014 Sample Scene auf jeden Fall... Preis weiß ich noch nicht genau. irgendetwas zwischen $10 und $30 denk ich mal. //e: Habe gerade implicits und InputAxis.delta / InputField.delta fertig implementiert. 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Schlumpf Geschrieben 14. April 2014 Melden Share Geschrieben 14. April 2014 (bearbeitet) dann würde ich mir auf jeden fall ein vorstellungsvideo wünschen vor dem kauf im store nice 2 have 4 : die settings deines inputsystem local speichern anbieten ( dem spieleersteller ) alla : if xml = true syste.io.file.write das beim nächsten start der spieler ( wenn der spielersteller das aktiviert ) die selben settings hat wie beim letzten spielen 1 save settings on change als boolean 2 load settings on change als boolean 3 ne möglichkeit für den spieler alle settings auf "standard" zu setzen > standard settings festlegbar bearbeitet 15. April 2014 von Schlumpf Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Rokks Geschrieben 30. April 2014 Melden Share Geschrieben 30. April 2014 Wird Dein System ähnlich dem bereits zu bekommenden CInput sein, oder planst Du etwas tiefgründiger vorzugehen, sodass man als Spieler tatsächlich in der Lage sein wird, seine Wunschtasten zu belegen? CInput ist zwar schon recht Umfangreich, aber an richtigen Stellen, die falschen Belegungen hinterlegt und das wars dann. Ich glaub ich warte dann lieber auf Dein Projekt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 1. Mai 2014 Autor Melden Share Geschrieben 1. Mai 2014 Wegen solcher Vergleiche habe ich nach Kenntnissen zu anderen Systemen gefragt - ich habe keine Ahnung, wie CInput funktioniert Kannst du da ein bisschen was darüber sagen? Ich habe in letzter Zeit extrem viel Web programmiert und bin mit meinem Input nicht weiter gekommen, aber anich ist es so gut wie fertig, wenn auch nicht feature complete. Tastatur, Maus und 360-Controller gehen halt wunderbar. Für den Upload von Version 1 fehlt primär die Doku dazu. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Schlumpf Geschrieben 1. Mai 2014 Melden Share Geschrieben 1. Mai 2014 was wird sie kosten ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 1. Mai 2014 Autor Melden Share Geschrieben 1. Mai 2014 Das hast du vor drei Posts doch schonmal gefragt... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Schlumpf Geschrieben 1. Mai 2014 Melden Share Geschrieben 1. Mai 2014 und du den post / die posts nicht beantwortet irgendetwas zwischen $10 und $30 denk ich mal. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 1. Mai 2014 Autor Melden Share Geschrieben 1. Mai 2014 Mehr weiß ich halt noch nicht ^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Schlumpf Geschrieben 1. Mai 2014 Melden Share Geschrieben 1. Mai 2014 du sry hast du falsch verstanden war als : sry bin zu doof zu lesen gemeint hast ja die spanne gepostet das is ok Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Rokks Geschrieben 3. Mai 2014 Melden Share Geschrieben 3. Mai 2014 Ich habe von dem CInput glaube sogar noch ne aktuelle Demo irgendwo rumfliegen. Wenn ich sie ausfindig mache kannst Du sie haben und selber drüber schauen, ansonsten suche ich die Funktionen raus und tickere sie hier rein. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Siebenkeim Geschrieben 4. Mai 2014 Melden Share Geschrieben 4. Mai 2014 Also CInput wirbt auf ihrer Homepage mit diesen Sachen: Some features worth mentioning: + Supports modifier keys! + Compatible with Android, iOS, and Flash. + Customize input configuration at runtime. + Very easy to setup. + Works in the same way as the Input class. + Optional, adjustable built-in gui menu. + Accepts joysticks, steering wheels, etc. + Also works for webplayer builds. + Full source code. könntest du dir doch kaufen und den Quellcode anschauen wie sie das mit dem Webplayer hinbekommen haben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 4. Mai 2014 Autor Melden Share Geschrieben 4. Mai 2014 Joa, wenn ich Lust hätte, dafür Geld auszugeben ^^ Mein System läuft ja schon einmal nicht wie das default-System. Kann man natürlich als Vor- oder als Nachteil sehen Mein System läuft auch im Webplayer, nur halt XInput nicht. XInput haben sie ja nicht einmal drin. Muss mal schauen, ob ich da damnächst weiter dran arbeiten kann. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.