💬 Here's the much requested Input System video! It's a long video but it will teach your everything you need to know! ✅ Get the FULL course here at 80% OFF!! 🌍 unitycodemonkey.com/courseultimateoverview.php 👍 Learn how to make BETTER games FASTER by using all the Unity Tools and Features at your disposal!
great job, for the video but i was wondering dose it work in the 2d platformer style or is it a 3d method i m new at unity nd c# so i m not sure about it
Hugo, I don't know if you'll see this message, but I've been desperately looking for tutorials of this kind. When I saw you, I was like, "Oh, Hugo! I knew I could always count on him!", and I was right. Immediate value. I love you so much, Hugo.
Still doing my best to learn what I can in regards to game development and programming. I cannot tell you how invaluable the information you’re sharing is. Every time I want to learn about something in unity, you have a detailed, professional video about it. Free of charge. That is insane to me. I and so many others appreciate what you’re doing. You’ve got a forever subscriber and a new lifelong fan.
Thank you so much for making a full dedicated video on the new Input System, I watched Brackeys tutorials but they were outdated until your ad caught my attention to which lead me here... The best ad I've ever clicked! Thank you! :D
Just recently started getting back into Game Development and this guide was brilliant. It didn't just show the 'one true' way, but instead provided options and actually lets you make a decision for which solution is best for your project.
This new input system is great, and you made it very easy to understand with this video. Also I like the fact that you added timestamps so that viewers can easily navigate through different parts. Thank you so much for your work! I'm currently working on rebinding the keys, hopefully everything will go according to the plan :D
If you only want to move along the 4 axis (up, down, left, right) and not diagonally or anything in between you should use two Vector1 Composites, one for horizontal and another for vertical movement, instead of the Vector2 Composite for all of them. Right click in the middle of the bar to display more options instead of clicking on the '+' icon. This will be equivalent to the 'GetAxisRaw()' present in the previous input system.
@@lordofthe6string It's hard to handle multiple 4-axis inputs in a 2D Vector Composite since it will lead to decimal values. With two Vector1 Composites you only need to handle the values of 1 and 0 in both horizontal and vertical axis. Much easier imo. No extra math involved.
I'm about 1 3rd of the way in and this is a fantastic tutorial, he explains not just whats going on but why, and shows lots of other ways to do things.
I am really very grateful for this tutorial, I have looked at others and none like this one, almost 1 hour but it has made me very enjoyable since everything is so well explained that it is spectacular. Really thank you very much for your tutorials, keep it up and I hope you never leave it because you are a teacher like very few
I was learning unity but I gave up because I couldn't find a good tutorial on the new system. I decided to come back and watched your video and immediately understood how it works
Im watching this in 2024 and is still by far the most coherent tutorial. There are so many tutorials, each demonstrating a different way of doing it. This by far is the best!
Thank you for explaining everything in depth, everyone else just show theories - no practical examples involved. Unity's official documentation is horribly confusing.
I thought I knew a lot about the New Input System but oh boy was I wrong. This was an excellent lecture and I learned a bunch. I really enjoy your content. You're like a more advanced Brackeys which is great! I always look forward to your videos like this one. Please keep up the good work it really helps me and many other developers:)
The new input system takes a while to get your head wrapped around but once you do it's actually much better structured than the old system. Being able to map actions like that on the visual asset saves time in not having to create your own input manager class when switching between action types (movement, driving, UI) etc. Thank you for this video!
Yeah it's been on my to-do list to get back to DOTS for quite a while now Since I've just finished the course update hopefully I should have more time this next month!
@@dreamterrormaster I haven't touched DOTS in over a year so no idea how much has changed since then. I don't think the base framework has changed so those videos are still good for learning how to think like DOTS, how to organize multiple components, use the job system, etc. Just the syntax may be outdated.
I'm really enjoying binging on your videos. I've enjoyed them all. I bought your course and I'll do that at some point. The only thing missing from this video, for me, was in the rebinding - checking whether a key/button/etc was already in use. Bar far the most useful, in-depth delve into this subject, that I've seen, though. Thank you
If anyone has an issue where you get a ton of errors related to vJoy which causes the new input system to not function properly, you can fix this by enabling preview packages and grabbing version 1.1.0 preview 5 for the input system. This version has a patch for vJoy and is at least available for unity version 2020.2.0f1, probably others as well.
Absolutely perfect. There's maybe one thing that could be added but it's a bit of a specific case: in Top Down games on desktop, players can perform 'Screen Edge Panning'. This interaction is not in the default and so it requires a code with IInputInteraction - it's not user-friendly at the moment and pretty hard to do, maybe a future update will make that kind of feature easier to add?
I just used an action type value with control type vector2 and put a binding on pointer position. Then linked the action to a function in my camera script like: public void OnMouseMove(InputAction.CallbackContext value) { Vector2 mousePosition = value.ReadValue(); _mouseMovement = Vector3.zero; if (mousePosition.x < _screen.x * 0.02f) _cameraMovement.x = -1; else if (mousePosition.x > _screen.x * 0.98f) _cameraMovement.x = 1; if (mousePosition.y < _screen.y * 0.02f) _cameraMovement.z = -1; else if (mousePosition.y > _screen.y * 0.98f) _cameraMovement.z = 1; } where _screen is defined in the awake function like: _screen = new Vector2Int(Screen.width, Screen.height); and _cameraMovement is a vector3 that is used in the LateUpdate function to move around the camera. Not sure if that is the best way, but it works :)
Thank you for the help and explaining the Input System. I enjoyed the fact you showed us different ways to get the same result. Thank you again, I plan on watching many more videos and classes by you.
You are a life saver and I will check out your tutorials on youtube and courses. I was using the old input system which was doing the job just fine, but I also want to implement gamepad without all the extras and the new input system makes that so much easier.
Thank you, I've only watched 15 min so far, and this is already the best tutorial I've watched so far, and I've watched quite a lot for this new input system lol.
I think what I really don't like about this new input system is that there's seemingly a thousand different ways to implement the same functionality. Every tutorial I watch about the new Input System has largely the same premise (adding movement and jump) but each one does it in a different way. This tutorial helped me understand enough to make my own in a way that I'm happy with, but even in this video you show multiple ways to essentially add the same functionality either through the Player Input component, or generating the C# class, using Unity Events or C# Events, then other videos have people adding inputs by defining them directly in the script by adding Input Action components to their controllers, but there's not really any explanation of why one way should be used over another, if there's a reason at all.
Bro, I can understand your frustration Because thats exactly how i felt in the beginning. But having open-ended approaches for simple inputs is actually a good thing. and this input system's strength. Being able to implement input by either components Or writing your own codes makes this system both beginner freindly, and professional friendly Its better to adapt to this input system over the last one Atleast if you're practicing for pc and console games
Really useful Tutorial. Covered a lot of ground in more in-depth that other tutorials I've found. Had some issues on my end where what happened in the tutorial didn't happen on my end, but I admit that it's probably my fault not following the tutorial "Exactly".. at 12:14 when he subscribed to "PlayerInput_onActionTriggered", none of that auto-filled for me.. I also didn't get the key Rebinding to actually work, but my code had deviated quite a bit by that point, as I were experimenting with the difference between utilizing the pre-made 'Player Input' component, and instead doing things through the generated C# script.. so I had a lot of excessive code bloating my script as I were doing a lot of things using both methods. despite those mishaps aside, this was still the must informative tutorial I've watched explaining the new Input System so far.
Thanks again for your really informative videos Hugo, this one helped last night when I was drawing a blank on converting from old input system to the new one
Great content overall Mr. Code Monkey :) I especially liked this input system video. I kept wishing for specific information and you kept providing the answers.
Subscribed, liked and added this video for quick reference. I love that you cover all the ways to use the Input system, not just limited to the simplest examples. So many other videos theorize or simplify content. You avoid the trap of making people type along with you for no reason, and instead teach people why you'd pick one solution over another and make this an invaluable reference.
I like the new system. There's much less clutter in your own code and the delegate-based system feels more slick than the endless slew of if statements you were previously stuck with. That, and it's more configurable for the player and MUCH easier to change the controls based on context, e.g. walking or driving.
FYI (40:20). Callback in programming is function you pass as a parameter. Not a parameter of a function. You basically called callback parameter to be "callback" while it is context object
Thank you very much for making this video. I'd probably be lost without it. The new input system does seem very powerful but parts are a still a little ambiguous to me. I had some trouble creating the equivalent of the old Input.GetButton(). For a while I was trying to make use of the phase.performed but couldn't figure it out. I eventually changed approaches and set the input type to value rather than button and basically check to see if the value is greater than zero to determine if the button is currently being pressed. Feels a little clunky so I imagine I'm still not doing it right but at least it's working now. Pretty frustrating considering how easy the previous method was. But I can certainly see the value of the new system when it comes to having local multiplayer and multiple types of input. Anyway, thanks again!
Great video, but you should have touched on local multiplayer. I still find it very poorly documented how the Input System actually differentiates between multiple PlayerInput components, seeing as you can use all connected devices on a single PlayerInput component at once.
Yeah the video was already insanely long so I thought I'd leave that topic for another video. Unity themselves actually made some videos on that topic ruclips.net/video/5tOOstXaIKE/видео.html ruclips.net/video/xF2zUOfPyg8/видео.html
but now I will do some experiment with modifiers, and check out the difference between polling IsPressed, and handling the events of Performed and its relatives.
but now I will do some experiment with modifiers, and check out the difference between polling IsPressed, and handling the events of Performed and its relatives.
i´m not surprsed to see one more time that your video it´s the most complete on every tutorial about the InputSystem.... cause you´re the only one that mentione this 'if(context.performed)' way to check state of input
Sat here for literally 2 hours trying to figure out why it wouldn't log "jump!". Restarted unity and it worked perfectly. Just in case it helps anyone else.
Thanks for the tutorial. Unfortunately the Input System is riddled with corner-case bugs and there’s little real development on the GitHub over the last six months. The lead developer has been suspiciously unengaged on the official forum during this time too. If I was a betting person I’d put money on Unity ditching it soon, which would be a shame since it is nicely designed. I’m contemplating taking Input System out of my current project as I’m just not getting traction from Unity on fixing the issues I’ve found.
@@LearnersNation if you stick to the basic use cases and don’t try to do anything clever, or create multiple bindings per action, you’ll probably be OK, at least for now. All the problems I’ve had have been with more complex configs like Hold and Invert processors with combined keyboard and analogue inputs.
@@meowsqueak Have you attemped multiple processes like Hold and Tap? I have a menu that shows when you hold a button, but when tapped, it does something else. I got it to work properly, but every time i hold, a bunch of errors pop up. The game works absolutely fine and the errors don't seem to mess up anything. It is very annoying though
Hi Code Monkey, at 23:10, where you were talking about reading input action on update, you were using the C# class method. Can this be done with the Player Input component too? If so, could you show us how? Thank you.
Late response but you can save the Vector2 in a variable and then use it in the update similar to this: private Vector2 direction; void FixedUpdate() { rb.MovePosition(direction); } public void Move(InputAction.CallbackContext context) { direction = context.ReadValue(); }
@@nuevageneracionba Thank you! Not including continuous holding in the UnityEvent-based messaging seems to be a major hole in the new input system, but this a great workaround!
Great video! Answered almost all my questions. I just need to figure out how to get a display string for the UI to tell the player what the current keys and such are.
Did you figure it out Egon? I've wondered this too, like how would you make the UI text show a keyboard letter, or switch to a game controller letter if the player suddenly plugs it in and starts using it.
💬 Here's the much requested Input System video! It's a long video but it will teach your everything you need to know!
✅ Get the FULL course here at 80% OFF!! 🌍 unitycodemonkey.com/courseultimateoverview.php
👍 Learn how to make BETTER games FASTER by using all the Unity Tools and Features at your disposal!
im trying make a simple "mouselook" script but im not getting anything you can make a video about it?
@@gabrielaguiar5984 You can download the official Starter Assets and see how it works ruclips.net/video/jXz5b_9z0Bc/видео.html
This is pretty good. Thanks for sharing.
great job, for the video but i was wondering dose it work in the 2d platformer style or is it a 3d method i m new at unity nd c# so i m not sure about it
Already your udemy student
19:44 - If you're using Unity 2022.1, it should say `Add Up/Down/Left/Right Composite` and it functions exactly the same way as in the video
Thanks, was confused it didn't show that option!
Hugo, I don't know if you'll see this message, but I've been desperately looking for tutorials of this kind. When I saw you, I was like, "Oh, Hugo! I knew I could always count on him!", and I was right. Immediate value. I love you so much, Hugo.
Nice! I'm glad the video helped!
2 hours searching for a good explaination,
Sir, you explain in details, in a way that anyone can understand
Thanks so much
Still doing my best to learn what I can in regards to game development and programming. I cannot tell you how invaluable the information you’re sharing is. Every time I want to learn about something in unity, you have a detailed, professional video about it. Free of charge. That is insane to me. I and so many others appreciate what you’re doing. You’ve got a forever subscriber and a new lifelong fan.
That's awesome to hear! Best of luck with your games!
Thank you so much for making a full dedicated video on the new Input System, I watched Brackeys tutorials but they were outdated until your ad caught my attention to which lead me here... The best ad I've ever clicked! Thank you! :D
I'm glad you liked the video! Thanks!
Just recently started getting back into Game Development and this guide was brilliant. It didn't just show the 'one true' way, but instead provided options and actually lets you make a decision for which solution is best for your project.
I'm glad you liked the video! Thanks!
This new input system is great, and you made it very easy to understand with this video. Also I like the fact that you added timestamps so that viewers can easily navigate through different parts. Thank you so much for your work!
I'm currently working on rebinding the keys, hopefully everything will go according to the plan :D
If you only want to move along the 4 axis (up, down, left, right) and not diagonally or anything in between you should use two Vector1 Composites, one for horizontal and another for vertical movement, instead of the Vector2 Composite for all of them. Right click in the middle of the bar to display more options instead of clicking on the '+' icon. This will be equivalent to the 'GetAxisRaw()' present in the previous input system.
Why?
@@lordofthe6string It's hard to handle multiple 4-axis inputs in a 2D Vector Composite since it will lead to decimal values. With two Vector1 Composites you only need to handle the values of 1 and 0 in both horizontal and vertical axis. Much easier imo. No extra math involved.
I'm about 1 3rd of the way in and this is a fantastic tutorial, he explains not just whats going on but why, and shows lots of other ways to do things.
I'm glad the video helps! Thanks!
This has answered SO many of my questions regarding the new Input System. Definitely added to my bookmarks :)
I am really very grateful for this tutorial, I have looked at others and none like this one, almost 1 hour but it has made me very enjoyable since everything is so well explained that it is spectacular. Really thank you very much for your tutorials, keep it up and I hope you never leave it because you are a teacher like very few
I'm glad the video helped you! Thanks!
I was learning unity but I gave up because I couldn't find a good tutorial on the new system. I decided to come back and watched your video and immediately understood how it works
Im watching this in 2024 and is still by far the most coherent tutorial. There are so many tutorials, each demonstrating a different way of doing it. This by far is the best!
I'm glad the video is still helpful! Thanks!
Finally a tutorial that actually explains how the system works considering that you probably don't know how it works
from Input to DOTS, this should be the official unity tutorial channel!!!
Thank you for explaining everything in depth, everyone else just show theories - no practical examples involved.
Unity's official documentation is horribly confusing.
The most detailed tutorial I've seen about the new input system. Very good job :)
I'm glad you liked it! Thanks!
I thought I knew a lot about the New Input System but oh boy was I wrong. This was an excellent lecture and I learned a bunch. I really enjoy your content. You're like a more advanced Brackeys which is great! I always look forward to your videos like this one. Please keep up the good work it really helps me and many other developers:)
I don't even skip your ads and I watch them completley to support you
The new input system takes a while to get your head wrapped around but once you do it's actually much better structured than the old system. Being able to map actions like that on the visual asset saves time in not having to create your own input manager class when switching between action types (movement, driving, UI) etc. Thank you for this video!
Best Unity Input tutorial out there, such a confusing topic , thanks
Please do more dots tutorials.
Yeah it's been on my to-do list to get back to DOTS for quite a while now
Since I've just finished the course update hopefully I should have more time this next month!
@@CodeMonkeyUnity are your dots tuts from ~2 years ago still good practice?
Or did unity change too much meanwhile?
@@dreamterrormaster I haven't touched DOTS in over a year so no idea how much has changed since then. I don't think the base framework has changed so those videos are still good for learning how to think like DOTS, how to organize multiple components, use the job system, etc. Just the syntax may be outdated.
I'm really enjoying binging on your videos. I've enjoyed them all. I bought your course and I'll do that at some point. The only thing missing from this video, for me, was in the rebinding - checking whether a key/button/etc was already in use. Bar far the most useful, in-depth delve into this subject, that I've seen, though. Thank you
If anyone has an issue where you get a ton of errors related to vJoy which causes the new input system to not function properly, you can fix this by enabling preview packages and grabbing version 1.1.0 preview 5 for the input system. This version has a patch for vJoy and is at least available for unity version 2020.2.0f1, probably others as well.
I finally understood this new system thanks to your video. Thank you very much!❤
I'm glad you liked the video! Thanks!
Absolutely perfect. There's maybe one thing that could be added but it's a bit of a specific case: in Top Down games on desktop, players can perform 'Screen Edge Panning'. This interaction is not in the default and so it requires a code with IInputInteraction - it's not user-friendly at the moment and pretty hard to do, maybe a future update will make that kind of feature easier to add?
I just used an action type value with control type vector2 and put a binding on pointer position.
Then linked the action to a function in my camera script like:
public void OnMouseMove(InputAction.CallbackContext value)
{
Vector2 mousePosition = value.ReadValue();
_mouseMovement = Vector3.zero;
if (mousePosition.x < _screen.x * 0.02f)
_cameraMovement.x = -1;
else if (mousePosition.x > _screen.x * 0.98f)
_cameraMovement.x = 1;
if (mousePosition.y < _screen.y * 0.02f)
_cameraMovement.z = -1;
else if (mousePosition.y > _screen.y * 0.98f)
_cameraMovement.z = 1;
}
where _screen is defined in the awake function like:
_screen = new Vector2Int(Screen.width, Screen.height);
and _cameraMovement is a vector3 that is used in the LateUpdate function to move around the camera.
Not sure if that is the best way, but it works :)
@@dreamterrormaster That's awesome! Thanks a lot for taking the time to explain how you did it. I just implemented it and it works perfectly.
@@cradle_of_chaos Brackeys has a video on RTS cameras that shows how to do it really simply too
Thank you for the help and explaining the Input System. I enjoyed the fact you showed us different ways to get the same result. Thank you again, I plan on watching many more videos and classes by you.
You are a life saver and I will check out your tutorials on youtube and courses. I was using the old input system which was doing the job just fine, but I also want to implement gamepad without all the extras and the new input system makes that so much easier.
Thanks! I'm glad you found the video helpful!
I was annoyed when I heard Unity's input system was being updated.
But wow! It's so convenient.
Thanks for the tutorial mate!
Thank you, I've only watched 15 min so far, and this is already the best tutorial I've watched so far, and I've watched quite a lot for this new input system lol.
I think what I really don't like about this new input system is that there's seemingly a thousand different ways to implement the same functionality. Every tutorial I watch about the new Input System has largely the same premise (adding movement and jump) but each one does it in a different way. This tutorial helped me understand enough to make my own in a way that I'm happy with, but even in this video you show multiple ways to essentially add the same functionality either through the Player Input component, or generating the C# class, using Unity Events or C# Events, then other videos have people adding inputs by defining them directly in the script by adding Input Action components to their controllers, but there's not really any explanation of why one way should be used over another, if there's a reason at all.
Bro, I can understand your frustration
Because thats exactly how i felt in the beginning.
But having open-ended approaches for simple inputs is actually a good thing. and this input system's strength.
Being able to implement input by either components
Or writing your own codes makes this system both beginner freindly, and professional friendly
Its better to adapt to this input system over the last one
Atleast if you're practicing for pc and console games
They explain it in their wiki so this is intended. They say they wanted the system to have multiple workflows unlike the old one.
thank you so much! kinda sad knowing that brackeys will never post a video about this, but I'm so glad i found your channel. thanks!
Couldn’t be better timing! I searched for tutorials earlier this morning! Thank you!
A bit steep learning curve but once you get the hang this new system is outstanding! Thanks for the video, great as always!
never understand. lot of PPL like this shit, i really hate it. I see 0 Scene in.
This video is literally exactly what I needed.
Thank you so much, I really wish this video existed a few months earlier but i will definitely be coming back to it in the future
Finally someone explain the input phases, thank u!
amazing video!! covered all the essential topics with just the right amount of time and content for each topic!!
Really useful Tutorial. Covered a lot of ground in more in-depth that other tutorials I've found. Had some issues on my end where what happened in the tutorial didn't happen on my end, but I admit that it's probably my fault not following the tutorial "Exactly"..
at 12:14 when he subscribed to "PlayerInput_onActionTriggered", none of that auto-filled for me..
I also didn't get the key Rebinding to actually work, but my code had deviated quite a bit by that point, as I were experimenting with the difference between utilizing the pre-made 'Player Input' component, and instead doing things through the generated C# script.. so I had a lot of excessive code bloating my script as I were doing a lot of things using both methods.
despite those mishaps aside, this was still the must informative tutorial I've watched explaining the new Input System so far.
Thanks again for your really informative videos Hugo, this one helped last night when I was drawing a blank on converting from old input system to the new one
Nice, I'm glad the video helped you! Best of luck with your project!
He replies to people even after 2 years.. What a legend
I try!
Thanks CodeMonkey Sir for providing your wisdom. I'm trying this for 2 days and now I got the trick to do this.. 😇🙏🏻
Amazing content, I'm buying right now the course.
I have learned so much from your video, thank you so much for uploading it, you are a very great teacher for me
Needed this so bad, thanks man!
Wow! Thank you so much. Thanks to this video, I understand how to use Unity New Input System. Thanks
Thank you so much for the great tutorial! I have a newfound respect for the Input system.
OMG This is Video is GOLD!
Thanks for saving me from the doc!!
Great content overall Mr. Code Monkey :) I especially liked this input system video. I kept wishing for specific information and you kept providing the answers.
I have liked the video
And I am going for sleep
Will watch it tomorrow
😂😂😂😉huge fan sir
Subscribed, liked and added this video for quick reference. I love that you cover all the ways to use the Input system, not just limited to the simplest examples. So many other videos theorize or simplify content. You avoid the trap of making people type along with you for no reason, and instead teach people why you'd pick one solution over another and make this an invaluable reference.
I'm glad you liked the video! Thanks!
I haven't even began to watch this yet and I know I already love you for it.
Another awesome tutorial just like the courses you offer! Thanks matey!
Awesome, complex explanation. You rock!
I like the new system. There's much less clutter in your own code and the delegate-based system feels more slick than the endless slew of if statements you were previously stuck with.
That, and it's more configurable for the player and MUCH easier to change the controls based on context, e.g. walking or driving.
Hey man, just stoped by to let you know i watched this on Udemy, great video helped me alot since i was switching from the old input system to this.
Hey mate do you by any chance know why I dont have the testing system input function ?
I'm glad it helped you! Thanks!
Wow, thank you for this compact & very informative overview!
Thanks a lot for clearly expression.I learned so much things.Pls keep going.
This will help me as hell! When will the third person shooter Tutorial, come out? 🤩😍
I'm almost done with that one, hopefully it will be out next week.
@@CodeMonkeyUnity Thank you really much 😍👊
Absolute gold! Thank you for this!
You are amazing, wish you luck, you may reach that 1M so soon :)
Thanks for the kind words!
Your tutorials are the perfect pace and you’re super good at explaining everything. Thanks for doing what you do!
Many thanks! I'm glad you like the videos!
Fantastic! Thanks CodeMonkey.
FYI (40:20). Callback in programming is function you pass as a parameter. Not a parameter of a function. You basically called callback parameter to be "callback" while it is context object
I love you so much
I'm glad the video helped you!
man, thank you a lot for your tutorials!
I'm glad they've helped you! Thanks!
Thanks for showing the C# events
LIKED. SUBSCRIBED. UR A LEGEND BRO!
Ur like an underrated version of Brackeys
Thanks for the kind words!
Great video, thank you for taking the time to go a bit more in depth.
Just finished, Nice video! I think I somewhat understand the new input system now lol
I'm glad the video helped you!
Thanks for the tutorial mate!
❤️
Perfect video for my bday! thanks
Happy birthday!
Thank you very much for making this video. I'd probably be lost without it. The new input system does seem very powerful but parts are a still a little ambiguous to me. I had some trouble creating the equivalent of the old Input.GetButton(). For a while I was trying to make use of the phase.performed but couldn't figure it out. I eventually changed approaches and set the input type to value rather than button and basically check to see if the value is greater than zero to determine if the button is currently being pressed. Feels a little clunky so I imagine I'm still not doing it right but at least it's working now. Pretty frustrating considering how easy the previous method was. But I can certainly see the value of the new system when it comes to having local multiplayer and multiple types of input. Anyway, thanks again!
THANKS! this tutorial was soooooooooooo helpful with my learning of unity....
I'm glad it helped!
@@CodeMonkeyUnity I’m tryna make an rpg game and I was confused abt the new input system but this helped SOOOO MUCH THANX
Thanks, learned how to use it
Well explained!! Thanks for this tutorial. It helped me. :-)
Great video, but you should have touched on local multiplayer. I still find it very poorly documented how the Input System actually differentiates between multiple PlayerInput components, seeing as you can use all connected devices on a single PlayerInput component at once.
Yeah the video was already insanely long so I thought I'd leave that topic for another video.
Unity themselves actually made some videos on that topic
ruclips.net/video/5tOOstXaIKE/видео.html
ruclips.net/video/xF2zUOfPyg8/видео.html
Leaving this here for myself for future reference: 11:25
Nice tutorial! Best in the topic.
but now I will do some experiment with modifiers, and check out the difference between polling IsPressed, and handling the events of Performed and its relatives.
but now I will do some experiment with modifiers, and check out the difference between polling IsPressed, and handling the events of Performed and its relatives.
Very robust system! Great tutorial!
i´m not surprsed to see one more time that your video it´s the most complete on every tutorial about the InputSystem.... cause you´re the only one that mentione this 'if(context.performed)' way to check state of input
Very clear and useful video.
Thank you so much for this detailed tutorial. I always have a hard time using the input system. This video is really helpful! Love you
Sat here for literally 2 hours trying to figure out why it wouldn't log "jump!".
Restarted unity and it worked perfectly.
Just in case it helps anyone else.
Thanks for the tutorial. Unfortunately the Input System is riddled with corner-case bugs and there’s little real development on the GitHub over the last six months. The lead developer has been suspiciously unengaged on the official forum during this time too. If I was a betting person I’d put money on Unity ditching it soon, which would be a shame since it is nicely designed. I’m contemplating taking Input System out of my current project as I’m just not getting traction from Unity on fixing the issues I’ve found.
i am also using new input system, do you suggest me to remove it too? as i am sole dev on my projects :(
@@LearnersNation if you stick to the basic use cases and don’t try to do anything clever, or create multiple bindings per action, you’ll probably be OK, at least for now. All the problems I’ve had have been with more complex configs like Hold and Invert processors with combined keyboard and analogue inputs.
@@meowsqueak got it. thank you for answering. i just need the basic use cases.
@@meowsqueak Have you attemped multiple processes like Hold and Tap? I have a menu that shows when you hold a button, but when tapped, it does something else. I got it to work properly, but every time i hold, a bunch of errors pop up. The game works absolutely fine and the errors don't seem to mess up anything. It is very annoying though
Just amazing, Thank you!!!
Great tutorial. The only thing I;m missing a but are mouse movements/touch examples
Awesome tutorial!
Hi Code Monkey, at 23:10, where you were talking about reading input action on update, you were using the C# class method. Can this be done with the Player Input component too? If so, could you show us how? Thank you.
I was wondering the same.
Late response but you can save the Vector2 in a variable and then use it in the update similar to this:
private Vector2 direction;
void FixedUpdate()
{
rb.MovePosition(direction);
}
public void Move(InputAction.CallbackContext context)
{
direction = context.ReadValue();
}
@@nuevageneracionba Thank you! Not including continuous holding in the UnityEvent-based messaging seems to be a major hole in the new input system, but this a great workaround!
Yeah honestly, kind of the main thing I need to know right now, wouldve been quite nice to have...
important video, Thank you❣
Great video! Answered almost all my questions. I just need to figure out how to get a display string for the UI to tell the player what the current keys and such are.
Did you figure it out Egon? I've wondered this too, like how would you make the UI text show a keyboard letter, or switch to a game controller letter if the player suddenly plugs it in and starts using it.
This was a great video. Thank you
You are a lifesaver!
Very useful video. Good job.
You sir, are amazing!
Aw god damn it. I've been putting off learning the new input system ever since it came out. Aaaalright, alright ima learn it now...
Amazing video, thank you.
Amazing video!
i am crying right now i learned the old input system and now this.. even this was 2 years ago
its like learning unity again