Input System von Unity | Unity Anfänger Tutorial Deutsch

preview_player
Показать описание
Input System von Unity | Unity Anfänger Tutorial Deutsch

Weitere interessante Videos:

🎮 Unterstütze uns, wenn du etwas im Unity Asset Store kaufst*:

Lernbücher die wir empfehlen:

Folge Boundfox Studios:

Die mit einem „*“ markierten Links sind Affiliate Links, bei denen wir am Verkauf beteiligt sind.

__

🎧 Verwendete Musik :
Creative Commons — Attribution 3.0 Unported — CC BY 3.0
Рекомендации по теме
Комментарии
Автор

Habt ihr schon das neue Input System genutzt von Unity? Schreibt es in die Kommentare! :)

BoundfoxStudios
Автор

Endlich mal jemand mit einem richtigen Tutorial !!

alexanderzapp
Автор

Ha... Hatte erst heute Probleme mit dem neuem System, da ich mir nicht mehr sicher war, wie genau das funktionierte. Da kommt das Video jetzt mega passend. 😂👍

zaqurioo
Автор

Echt Top Video! Euer Kontent ist der Hammer :D

zoroarts
Автор

Top Video.

Würde allerdings die Umwandlung von Vector2 auf Vector3 beim Movement direkt im SO machen und dann dementsprechend UnityAction<Vector3> callen.

svenogorek
Автор

Tolles Video! Manu, ich hab ne Idee für ne Mini-Serie. 😃Rate mal... 😂 Unter Einbindung des Input-Systems und Cinemachine ein importierter Krieger mit Walk-, Jump- und Melee-Animation. Uuund mit dem UI, um zu wählen, dass bei einem Level up zwischen verschiedenen Fight-Skills bzw. zwischen neuen Skills und dem Verbessern von bereits existierenden gewählt werden kann. 🤓 Das wäre sooo toll!!!

juliaalder
Автор

War mein erster Einblick in das neue Input System von Unity. Danke für die ausführliche Erklärung. Wir es noch weitere Tutorials dazu geben?

sebix
Автор

gibt es dazu auch ein video mit Touch eingaben wie zb wenn ich rechts tippe bewegt sich mein player nach rechts?

Sebistyla
Автор

Vielleicht hab ich das falsch verstanden, aber die Aussage über den PlayerInputManager versteh ich nicht ganz. Der gezeigte PlayerInputManager dient ja dazu mehrere Spieler zu verwalten. Also handelt das beitreten und verlassen von Spielern in local Multiplayer. Und die nicht gezeigte zweite Komponente PlayerInput handelt den einzelnen Spieler. Und die PlayerInput Komponente kann in meinen Augen eigentlich nicht sooo wenig. Oder wo steh ich jetzt aufm Schlauch?

SeProgrammiert
Автор

Hallo Manu, ich habe Probleme damit das Input System über den Package Manager zu installieren.
Es kommt dauernd die Meldung: "self signed certificate in certificate chain"; See Console:

ConsolenAusgabe: 1.
[Package Manager Window] Cannot perform upm operation: self signed certificate in certificate chain [NotFound].
()

ConsoleAusgabe 2.
[Package Manager Window] Error searching for packages.
()

ConsoleAusgabe 3.
()


Mit freundlichsten Grüßen

arthurfrickel
Автор

wird es zwingend notwendig sein zu wechseln ?

Excess-qnqh
Автор

Kann einer mal die Callbacks erklären. Gerade im bezug auf context fällt es mir schwer das zu verstehen.
Beim googlen hierzu konnt ich nichts finden.

MisterChange-
Автор

Paar Tips von den Rängen runtergelabert, für alle, die auf diesem (sehr, sehr guten!) Tutorial aufbauen und auf komische Probleme stoßen. Weil das jetzt etwas "advanced" ist, kann ich es nicht so strukturiert wiedergeben wie das Video. :D

- 2:20 nach dem Neustart unter Edit->Project Settings->Input System das Input Event Handling auf "... in FixedUpdate" umstellen, wenn ihr mit eurem Input primär ein physikalisches Objekt steuern wollt. Es "geht" auch ohne, aber eure Steuerung kann, insbesondere bei bestimmten Frame Rates, unzuverlässig werden; vor allem wenn ihr InputAction.triggered pollt (die andere Art, das neue InputSystem zu benutzen). Die Force vom Movement oder Jump kann auch versehentlich mehrfach oder zu selten angewendet werden. In diesen Video wird der Movement-Vektor zwar in _movementDirection zwischengespeichert, aber auch das kann zu (kleinen) zusätzlichen Inputlatenzen führen, die zyklisch schwanken. (z.B. bei 15 ms deltaTime und 50ms fixedDeltaTime).

- 24:30 statt in ReadJumpInput statt AddForce(Vector3) den overload AddForce(Vector3, ForceMode.Impulse) verwenden. Dieser versetzt einen konstanten Stoß (Impuls), statt eine Kraft, die zu einer Beschleunigung führt. Im Tutorial wird das durch ein großzügiges Multiplizieren der Kraft "gefixt", aber das ist beides nicht korrekt. Es ist z.B. ein doppelt so starker Jump möglich wenn man ganz schnell drückt (2x bevor dem nächsten FixedUpdate). Insbesondere bei schwankenden Frame Rates. Oder aber, wenn ihr den Physics Time Step in den Settings verändert (z.B. für eine präzisere Kollisionsantwort), in dem Fall würde sich ohne ForceMode.Impulse euer Spiel ganz anders steuern und ihr müsst alle Werte neu anpassen.

- Statt der Indirektion durch das ScriptableObject könnt ihr auch mit den dafür vom System bereitgestellten InputActionMaps reden - InputActionMap.Enable()/.Disable(), wenn ihr z.B. für ein Inventar gewisse Inputs ein- oder ausschalten wollt.

Generell können beide Ansätze sinnvoll sein, weil der PlayerController oft besser weiß, welche Aktionen für ihn gelten, als irgendein separates Feature. dann hat man dann aber einen Event wie "ModalMenuOpened" oder "InventoryOpened", auf das der PlayerController dann reagiert, oder - für die ganz sauberen - ein Objekt, an das der das delegiert hat.

Ich denke aber das ScriptableObject kann auch viele Vorteile bieten, wenn man z.B. einen Player von einer KI oder so steuern will, oder aufgenommene Inputs weitergeben mag. Das wäre (etwas) schwieriger mit einer selbstgeschriebenen ActionMap, aber man verliert durch das ScriptableObject den zugriff auf die Phasen der einzelnen Aktionen, was z.B. bei Touch oder bei Spielen mit komplexen Inputs oft nötig ist. Zum Beispiel für Combos in Kampfspielen, oder auch nur Buttons mit der Interaction "Hold" um z.B. ein Skill aufzuladen, etc. Da ist es besser, auf die Modifier / Interactions des InputSystem aufbauen zu können, statt das alles selber zu Programmieren.

thygrrr
Автор

Hoi, ich weiß das video ist älter

jeder nutzt irgendwie in den tutorials(3d) des input systems die addforce methode oder bewegt die transform.
geht das ganze nicht mit velocity?
private void Update()
{

Vector2 inputVector =
if (inputVector.y != 0 || inputVector.x != 0)
{
Debug.Log(inputVector.y + " | " + inputVector.x);
}
rb.velocity = moveSpeed * Time.deltaTime * new Vector3(inputVector.x, 0, inputVector.y);
}

wenn ich das rb.velocity gegen ein addforce tausche dann geht es wunderbar, verstehe den fehler bei mir nicht. auch wenn ich movespeed auf max int setze ändert sich nix, es bewegt sich nicht^^

vllt mag das ja jemand lösen^^

dennislahrmann
Автор

Ich versteh nur Bahnhof im InputReaderSO.cs
:(

MisterChange-