Seth Funk, thank you so much for this incredible tutorial. You saved me hours of time, made me laugh, and gave me hope for the new Input System. Subbed!
This is such a great comment! Thank you. I hope the input system treats you well. I know there are some pain points with it still, but it can be really powerful@@BurtBot
@@BurtBot Depends on your definition of multiplayer. Local multiplayer I have gotten to work really well with this input system. I haven't done much with online multiplayer so I honestly have no idea how well this is handled or even how to approach that
For anybody trying to figure out how to move a three dimensional object with this method: in the line that establishes moveInputValue, that is the equivalent of getting the X and Y value of the joystick. IF you plug this into a transform.Translate line, the way you'd do so is by calling in the X value (moveInputValue.x) and the Y value (moveInput.y) So with that in mind, if you're wanting to move a 3d character using the translate method, type "transform.Translate (moveInputValue.x * speed, 0, moveInputValue.y * speed);" It looks weird putting a Y value in where a z value would go, but the joystick itself is a Vector2 so it makes sense." Hope this helps some people.
Thank you for the tutorial. I had a hard time creating input controls with ReWired and creating bindings for multiple controllers. This looks like the best way to get input up and running on generic controllers and keeps it all very tidy within a single asset file. :)
I hope the best of luck. I honestly can't help since I do not own a switch so I can't even test anything on my end. My guess is though is to make sure when choosing the input type, make sure it is set to stick and analog. That should give you full 360 degrees of movement
can you you touch a big more on how to switch between Action maps based on your implementation? like what if I have a swim and onland actions that I need to toggle between? good video by the way. your tutorial is the best I've seen so far
Sorry for the slow response, yt likes to not notify me of comments. Lol But switching action maps should just be accessing your player input manager and setting the action map. As for the exact code, not sure off hand but it should on unity documentation or Im sure chatgpt could help.
Since this used physics calcs (moving a rigidbody object), the multiplying of time.fixedDeltaTime (could technically use .detlaTime aswell) helps ensure the movement is consistent between every machine that plays the game. I then call the MoveLogicMethod in FixedUpdate since this update method is only called at set intervals for physic calculations. Since physic calculations are computationally expensive, it's best to not run them every single frame which is what the normal "update" function would do. Hope this helps
why no one mention that the new input system dont support third party Controller's by default. ? also wean i have try the new input system i don't fund a way to add multiple controller's one for each player because I want my game to support all kinds off controller's i will havemake ribbing system with the old input system. and if use the new input system i will be only for Xinput,PS controller, Switch pro controller. but if make my input ribbing system advanced i don't think i will be nursery.
The new input system does support 3rd party controllers. There are a few limitations and special cases. But here is a link to the unity documentation to see which controllers are supported: docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/SupportedDevices.html#:~:text=Unity%20supports%20Made%20for%20iOS,Project%20to%20enable%20console%20support.
Does the new input system function with Bolt/the new Visual Scripting that was recently added? For context, I'm just recently moving from Unreal over to Unity.
I am using a usb dancepad. It appeares on the list inside the Joystick section, but when I try to use the 'Listen' option, unity detects nothing. I have tested the device from gamepad testing websites, it's working fine. Could you please help?
When setting up the input action, in the action properties, try setting the action type to "Value", and the control type to "Axis", Then try to bind the controller via the listen button to see if that works. My guess is the dancepad is treating the input data in a very specific manner, which if that is the case, try a few different control types to see if any of them work. I would start with axis though
What seems to be the problem? Did you instal the input system through the package manager? Did you create the input asset? Did you create the action and give it a binding in the input asset? Did you add the player input component on the gameobject that the scripts is placed on? In your script did ypu make sure to add the input system library at the top of the script? Are you getting errors? What exactly have you done and what is the problem that is occurring l. This video is step by step and works on pretty much every version of unity, so if you followed it exactly it will work.
You can but not as simple as using a standard controller. You can use something like a mirror networking which takes commands from your phone and converts them into input actions. I believe there was also an asset I seen sometime ago that used phones connect via wifi to act as a controller.
Seth Funk, thank you so much for this incredible tutorial. You saved me hours of time, made me laugh, and gave me hope for the new Input System. Subbed!
Hey! Thank you for the kind words and I am glad it helped you out. I use the new input system for all my projects now. Good luck on your project!
Thank you@@SethFunk ! Seriously great tutorial -- Had to come back to it. Lots of laughs too.
This is such a great comment! Thank you. I hope the input system treats you well. I know there are some pain points with it still, but it can be really powerful@@BurtBot
Yo@@SethFunk have you gotten controller support PLUS multiplayer to work? Hope all is well!
@@BurtBot Depends on your definition of multiplayer. Local multiplayer I have gotten to work really well with this input system. I haven't done much with online multiplayer so I honestly have no idea how well this is handled or even how to approach that
For anybody trying to figure out how to move a three dimensional object with this method:
in the line that establishes moveInputValue, that is the equivalent of getting the X and Y value of the joystick.
IF you plug this into a transform.Translate line, the way you'd do so is by calling in the X value (moveInputValue.x) and the Y value (moveInput.y)
So with that in mind, if you're wanting to move a 3d character using the translate method, type "transform.Translate (moveInputValue.x * speed, 0, moveInputValue.y * speed);"
It looks weird putting a Y value in where a z value would go, but the joystick itself is a Vector2 so it makes sense."
Hope this helps some people.
Best tutorial on the internet for this input system. This is the nth video I've watched, and the only one I could reproduce in ~2 days. THANK YOU!
You're welcome! I'm glad to hear it worked out for you. The new input system is very powerful, just kinda difficult to work with at times.
very well made video, very easy to follow
Clear and on the point. I'm sure I'll visit this tutorial many times for my projects :D
Thanks for checking it out, and I hope it works out well for your projects.
Thank you for the tutorial. I had a hard time creating input controls with ReWired and creating bindings for multiple controllers. This looks like the best way to get input up and running on generic controllers and keeps it all very tidy within a single asset file. :)
I'm glad it is helpful for you! This is the exact same method I use in all my projects now because of those very reasons!
this is one of the better input tutorials thanks, im trying right now to get the stick working on switch in more than just 8 ways.
I hope the best of luck. I honestly can't help since I do not own a switch so I can't even test anything on my end. My guess is though is to make sure when choosing the input type, make sure it is set to stick and analog. That should give you full 360 degrees of movement
@@SethFunk you my friend are exactly correct! works ! thanks! :-)
@@TYNEPUNK I'm glad! Good luck on your project! Here's a link to my discord. Feel free to drop in and share your progress!
discord.gg/WBQXKdDKR7
@@SethFunk cheers! im in I am called Gaz :)
I don't understand why such a wonderful and detailed tutorial is so underrated. Must be in the TOP.
Thanks to the author, I like and subscribe! 🤍
Thank you for the kind comment! And i guess i just wasn't blessed by the youtube algo lol
Just followed this tutorial! Super easy just like you've stated. Thanks for this :D
Thanks for checking it out! The feedback is very much appreciated!
Really helped me out, thank you!
I'm glad this is still being useful for people! Thank you for letting me know 😃
you do good tutorials, thanks for this. Your channel should get more attention.
Thank you! I really appreciate that. Happy Valentine's day btw!
can you you touch a big more on how to switch between Action maps based on your implementation?
like what if I have a swim and onland actions that I need to toggle between?
good video by the way. your tutorial is the best I've seen so far
Sorry for the slow response, yt likes to not notify me of comments. Lol But switching action maps should just be accessing your player input manager and setting the action map. As for the exact code, not sure off hand but it should on unity documentation or Im sure chatgpt could help.
at 9:05, why is fixeddeltatime multiplied into the velocity? shouldnt it just be inputvalue * speed?
Since this used physics calcs (moving a rigidbody object), the multiplying of time.fixedDeltaTime (could technically use .detlaTime aswell) helps ensure the movement is consistent between every machine that plays the game. I then call the MoveLogicMethod in FixedUpdate since this update method is only called at set intervals for physic calculations. Since physic calculations are computationally expensive, it's best to not run them every single frame which is what the normal "update" function would do.
Hope this helps
Thanks this is super helpfull to quickly get something working :)!
Im glad it was useful!
Great stuff!
Thanks for checking it out!
Thank you so much it worked
I'm glad to hear it! Don't forget to give the video a like since that helps me out!
Great, thanks!
I'm glad it helped out! :D
why no one mention that the new input system dont support third party Controller's by default. ?
also wean i have try the new input system i don't fund a way to add multiple controller's one for each player
because I want my game to support all kinds off controller's i will havemake ribbing system with the old input system.
and if use the new input system i will be only for Xinput,PS controller, Switch pro controller.
but if make my input ribbing system advanced i don't think i will be nursery.
The new input system does support 3rd party controllers. There are a few limitations and special cases. But here is a link to the unity documentation to see which controllers are supported:
docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/SupportedDevices.html#:~:text=Unity%20supports%20Made%20for%20iOS,Project%20to%20enable%20console%20support.
@@SethFunk okay
Does the new input system function with Bolt/the new Visual Scripting that was recently added? For context, I'm just recently moving from Unreal over to Unity.
I believe it is possible but I never used the visual scripting. A quick google search I did looked promising though.
@@SethFunk I actually went through it today and thankfully it does. Thank you for taking the time to respond!
@@TheDoorMatt655 Of course, good luck with your project!
I am using a usb dancepad. It appeares on the list inside the Joystick section, but when I try to use the 'Listen' option, unity detects nothing. I have tested the device from gamepad testing websites, it's working fine. Could you please help?
When setting up the input action, in the action properties, try setting the action type to "Value", and the control type to "Axis", Then try to bind the controller via the listen button to see if that works. My guess is the dancepad is treating the input data in a very specific manner, which if that is the case, try a few different control types to see if any of them work. I would start with axis though
Tried this tutorial after at least 15 other ones and none did work, idk what to do anymore so I'll probably js use the Input Manager
The video was quite good tho
What seems to be the problem? Did you instal the input system through the package manager? Did you create the input asset? Did you create the action and give it a binding in the input asset? Did you add the player input component on the gameobject that the scripts is placed on? In your script did ypu make sure to add the input system library at the top of the script? Are you getting errors? What exactly have you done and what is the problem that is occurring l. This video is step by step and works on pretty much every version of unity, so if you followed it exactly it will work.
Can I use my phone as a gamepad for my games?
You can but not as simple as using a standard controller. You can use something like a mirror networking which takes commands from your phone and converts them into input actions. I believe there was also an asset I seen sometime ago that used phones connect via wifi to act as a controller.
@@SethFunk thanks for your answer