Unity's New INPUT SYSTEM | Unity Beginner Tutorial 2024

Sdílet
Vložit
  • čas přidán 16. 07. 2024
  • In this Unity tutorial, we'll dive into the flexible and intuitive New Input System, perfect for enhancing your game's user interactions. We'll start with installing the system and setting up your first action map. I'll guide you through scripting a manager script and creating your own 3D and 2D character controllers, complete with practical examples. We'll explore the importance of deadzones to prevent unwanted character movement, delve into coding techniques for inverting Y sensitivity, and discuss how to scale sensitivity across different input devices. Special attention will be given to console development challenges like handling disconnected input devices, navigating UIs, and rebinding controls. By the end of this tutorial, you'll be equipped with a wealth of knowledge to create more responsive and intuitive game controls. Let's embark on this journey to elevate your game development skills!
    ➡️Patreon Project: / ultimate-new-96852856
    ➡️Patreon Scripts: / 96852921
    ➡️Main Menu Tutorial: • MAIN MENU in Unity (Be...
    🔥Character Controller Tutorials:
    ➡️FPS Controller with Footsteps: • Creating an FPS Contro...
    ➡️FPS Controller - New Input System: • FPS CONTROLLER Using N...
    ➡️Third Person Controller Guide: • Third Person Character...
    ➡️Synty Third Person Character: • Using Synty Characters...
    🔥Assets Used:
    ➡️2D Swordman: tinyurl.com/2DSwordmanCharacter
    ➡️Unity Controllers: tinyurl.com/UnityStarterContro...
    🎁 Get OVER 225+ scripts & projects on my PATREON:
    ➡️Main Link: bit.ly/SpeedTutorPatreon
    ➡️Full List: tinyurl.com/STPatreonAssetsList
    ·························································································
    🔥SpeedTutor Unity Store: bit.ly/STUnityStorePuzzlePacks
    🔥 INSANE UNITY SAVINGS: bit.ly/UnitySalesHub
    🕹️Unity Sales: bit.ly/UnitySalesHub
    🕹️Quick-Start Bundle: bit.ly/UnityQuickStartBundle
    🕹️Weekly Publisher Sale (+FREE Asset): bit.ly/WeeklyPublisherSale
    🕹️Unity New Release Discount Sale: prf.hn/l/BdvEmg3
    🔥 INSANE HUMBLE SAVINGS: bit.ly/HumbleBundleDeals
    🕹️Unity Epic Worlds Asset Bundle: tinyurl.com/UnityEpicWorldsBundle
    🕹️Unreal Environment Mega Bundle: tinyurl.com/38bu97xr
    🕹️World Building & AI Bundle: tinyurl.com/GameBuilding-AIBu...
    🕹️Creative Sandbox Games Bundle: tinyurl.com/CreativeSandboxGa...
    🔥Synty Discounts & Savings: bit.ly/SyntyLowPolyAssets
    ·························································································
    💬Join the Community Discord:
    ➡️ / discord
    💝 Make a donation to the channel:
    ➡️www.paypal.me/speedtutor
    ·························································································
    00:00 Intro
    01:50 Legacy vs New Input Reference
    3:25 Installing Input System
    4:17 Switching between Input systems
    4:40 Fixing Binding Path Unity UI/UX Issue
    6:14 Creating Input Action Map
    10:16 Enabling Auto-Save
    10:43 Creating Input Handler Manager
    19:35 Setting Up An FPSController
    28:21 Testing The FPSController
    29:46 How to implement deadzones
    31:11 Scripting Deadzone limits in code
    32:22 Scaling Input Sensitivity between devices
    33:23 Inverting actions with a processor
    34:09 Inverting controls in script
    35:46 Print a list of connected devices
    36:58 Detecting when input devices are disconnected or reconnected
    39:27 2D Character Assets Download
    39:54 Setting Up Input Actions for 2D Controller
    41:44 Setting Up The 2D Character Controller Player
    42:29 Creating 2D Character Controller Script
    47:55 Testing 2D Controller - Part 1
    48:13 Fixing NullRef Issue for any input pieces of code
    48:36 Testing 2D Controller - Part 2
    49:07 Navigating UIs with gamepads - Updating EventSystem gameobject
    49:52 Navigating UI's w/ gpads - Copying UI event actions
    50:37 Navigating UI's w/ gpads - Updating Event System actions maps
    50:56 Navigating UI's w/ gpads - Selecting your first button
    51:32 Navigating UI's w/ gpads - Understanding how buttons navigate
    52:33 Navigating UI's w/ gpads - Updating FirstSelected via code
    53:50 Navigating UI's w/ gpads - Making sure Gamepads can always interact after mouse click
    55:55 Looking At Unitys Input Sample Projects
    57:27 Looking At Unitys rebinding UI package
    01:01:14 Unitys Starter Assets - Character Controllers
    ·························································································
    ⬇️ SpeedTutor Puzzle Assets:
    🧩Unity Store: bit.ly/STUnityStorePuzzlePacks
    ························································································
    ⭐ Connect with me:
    💬| Discord: / discord
    🐦| Twitter: / speedtutor
    📱 | Facebook: / speedtutoruk
    🖥 | Website: www.speed-tutor.com
    ·······················································································
    #SpeedTutor #Unity #InputSystem

Komentáře • 198

  • @SpeedTutor
    @SpeedTutor  Před 5 měsíci +3

    This one took a fair portion of time to put together so I hope people find it useful! Do be sure to comment below if you have any improvements, any suggestions on how to make sure others can implement input in great ways. I love to see it! Thanks everyone. :)
    🕹Unity New Year Awards Sale NOW ON: bit.ly/UnitySalesHub
    🕹BRAND NEW Quick-Start Bundle: bit.ly/UnityQuickStartBundle
    🕹My Unity Store Assets: bit.ly/STUnityStorePuzzlePacks

    • @testpig
      @testpig Před 5 měsíci

      can you do a video with a top-down input system, that using mouse direction for facing direction, and and WASD for movement, while having the movement speed chance based on the direction your going against the position of the mouse. So walking backwards would be slower etc etc

  • @muzboz
    @muzboz Před 5 měsíci +7

    It's great that you covered some of the essential extra stuff that is often overlooked, like having the default selected button for Gamepad, and if you switch from Gamepad to Mouse then back to Gamepad, to set a default button to highlight. Great stuff!

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      You're very welcome and I'm glad you found it useful! It's something I've gone through myself, so I understand the pain of it all. What are you working on?

  • @frankiejrey
    @frankiejrey Před 3 měsíci +4

    This is a 5-star tutorial. Pure gold. Thank you for posting it.

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci +1

      You're very welcome, my friend! :) What are you creating?

    • @frankiejrey
      @frankiejrey Před 3 měsíci

      @@SpeedTutor Just learning for now. Placing a focus on FPS and you are helping.

  • @zelest
    @zelest Před 4 měsíci +2

    Thank you so much for this, especially the bugfix part in the beginning, it'd have driven me nuts! Amazing that it isn't fixed yet. I'd have pushed a minor update just for that.

    • @SpeedTutor
      @SpeedTutor  Před 4 měsíci +1

      Supposedly they have created several fixes for it but with the various versions of pipelines, I guess it has slipped through the net. They are meant to be fixing it (Or have fixed it) in V1.7 or V1.8 of the input system. I don't recall the numbering, haha. No worries though, I'm glad I could help. What project are you working on?

  • @YaKupitman
    @YaKupitman Před 3 měsíci +3

    This video deserves MUCH more attention! Impressive work!

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci +1

      I really appreciate that, my friend! :D What are you looking to create?

    • @YaKupitman
      @YaKupitman Před 3 měsíci

      @@SpeedTutor I don't actually have any specific project that I'm currently working on. Well, I had some experience with creating small arcade games couple years ago, but I didn't have any idea how to write a clean expandable code. So here I am, trying to organise my thoughts and to improve my skills!

  • @davidmiles2055
    @davidmiles2055 Před 5 měsíci +2

    Yay some nice and long tutorial! Teaching king is back! :)

  • @myowntreacherynz
    @myowntreacherynz Před 3 měsíci +1

    By far the best tutorial on input system i've seen!!! thank you!

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci +1

      You're very welcome and I'm glad you found it useful! :) What are you going to create?

    • @myowntreacherynz
      @myowntreacherynz Před 3 měsíci +1

      i'm working on a 2d platformer with my 11 year old son :) very helpful tips thank you!@@SpeedTutor

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci +1

      Awesome, good luck with your both! What a wonderful thing to do together but be scared when he becomes a better Game Dev :P

  • @nicholasbrave1
    @nicholasbrave1 Před 5 měsíci +2

    This is awesome, thank you

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      You're very welcome, what are you making?

  • @monkeymonkey69696
    @monkeymonkey69696 Před 4 měsíci +2

    Still didn't know why this video so little view Let's share this to everyone and support this video because this video is great
    Keep up the good work

    • @SpeedTutor
      @SpeedTutor  Před 4 měsíci

      I really appreciate the support, my friend! :) My content just doesn't really get pushed by CZcams. I'm just thankful for the kind words!

  • @kelcast8775
    @kelcast8775 Před 5 měsíci +2

    Thanks for the video, it helped out a lot!

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      Thanks for checking it out, what are you working on? :)

    • @kelcast8775
      @kelcast8775 Před 5 měsíci +1

      Just a basic 2.5D platformer, trying to actually finish a project this time.
      I actually ran into an issue where the character would jump as long as pressed the jump button, I tried jumpAction.started but it continued the same (since jump wouldn't stop unless canceled). So I had to change the interaction in the Action Map to Hold and make it only start counting as performed after the button being pressed for .1 seconds and then did:
      jumpAction.started += context => JumpTriggered = true;
      jumpAction.performed += context => JumpTriggered = falsed;
      jumpAction.canceled+= context => JumpTriggered = false;
      Leaving this here just in case someone runs into the same issue.

    • @erdemkizil
      @erdemkizil Před 5 měsíci

      @@kelcast8775 Thank you so much

  • @SS-eq4nt
    @SS-eq4nt Před 6 dny +1

    Holy crap, thank you for helping fix this stupid bug in Unity. 😅

  • @ACBros_06
    @ACBros_06 Před 5 měsíci +1

    This vid was what I needed most. thank you for helping solo devs

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      You're very welcome, my friend! :) What are you working on?

    • @ACBros_06
      @ACBros_06 Před 5 měsíci

      @@SpeedTutor a URP mobile game utilizing input system to use a forklift truck and move boxes

  • @nicholasbrave1
    @nicholasbrave1 Před 4 měsíci +1

    It would be awesome to see this expanded to include a local multiplayer setup!

    • @SpeedTutor
      @SpeedTutor  Před 4 měsíci +2

      I could definitely have a thing about that!

  • @ArnoldSzathmary
    @ArnoldSzathmary Před 3 měsíci +5

    This is genius! The spelling mistake is still there. Unbelievable!

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci +2

      I know, it's crazy that it isn't fixed at this point but you're very welcome. I hope you found it useful. What are you creating?

  • @MikemoliOne4AllGaming
    @MikemoliOne4AllGaming Před 2 měsíci +1

    Very very good tutorial, ¡great job and thank you!

    • @SpeedTutor
      @SpeedTutor  Před 2 měsíci

      You're very welcome, what are you making?

  • @FyresGames
    @FyresGames Před 5 měsíci +2

    First of all great work on the tutorial for the new input system. There's one thing I would suggest for the Menu UI. Instead of using a update to detect if the mouse isn't selecting a button. I think a better solution would be to add on each button the component Event Trigger, add the event Pointer Exit linked to a function to keep the button it just left selected for gamepad or keyboard control.

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      Thanks! And thank you very much for the suggestion, I like the optimisation and I really hope people read this and work that into their own solutions. I appreciate you taking the time to comment! :)

  • @thunderstriketrading
    @thunderstriketrading Před 2 měsíci +1

    This is acutally gold content! Game devs everywhere now have one less stress to worry about

    • @SpeedTutor
      @SpeedTutor  Před 2 měsíci

      Haha, I'm glad you found it useful! :) What are you creating?

  • @frankreiser_recaremo
    @frankreiser_recaremo Před 2 měsíci +1

    Amazing - thanks a lot

    • @SpeedTutor
      @SpeedTutor  Před 2 měsíci +1

      You're very welcome, what are you creating?

    • @frankreiser_recaremo
      @frankreiser_recaremo Před 2 měsíci +1

      @@SpeedTutor a medieval reconstruction of my hometown. I tested some FPS assets but they all have some missing things. So I thought creating my own give me more understanding how it works. There is not a game more edutainment. I need no fighting and killing options. More discover real existing artefacts and interact with them, learn something real medieval life: food, working, craft, music, realistic buildings and so on. I just started to publish some free assets at Unity Store.
      Did you prefer uGUI or do you planing also making tutorials about UI-Toolkit? I like your work and how you teach us. Will looking at your tutorial shop soon.

    • @SpeedTutor
      @SpeedTutor  Před 2 měsíci

      Sounds amazing and I wish you the best of luck with your project! I can't wait to see more. I pretty much always use the uGUI as it's something I'm most familiar with. I haven't experimented with the UI Toolkit yet but I may check that out! :)

  • @agonyzx
    @agonyzx Před 3 měsíci +2

    Dear Speedtutor, first of all I want to really thank you from the bottom of my heart for this beautiful tutorial. I knew when you mentioned how to fix the input system editor, that this tutorial was basically all that one could ask for. But I still have a question, because you showed the implementation of a fps controller in depth, but do you have a similar in depth tutorial for a third person controller? I really like the way you explain things and hope you keep making great content :)

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci +1

      I really appreciate you coming along to check this out and comment, my friend! :D As to that, I'll definitely put it down on my list but I highly recommend you check out Unity's third person controller templates that I linked, they can give you a good start as they do use cinemachine and such! :) What are you trying to create?

    • @agonyzx
      @agonyzx Před 3 měsíci +1

      @@SpeedTutor I appreciate your quick response, which further reinforces for me that this will now be my go to channel for unity content.
      I've looked at Unity's 3rd person controller, but it's set up a little differently than the setup you showed in your video. For example, there is no such InputHandler, but all roads lead to Rome, so I'll just try to create my own variation.
      I myself come from a full-time web development background and have always wanted to create a kind of minimalist Souls Like, but where I create almost everything myself (Unity, Blender, animations, etc.) This is the plan and also the reason why I don't want to use the Unity 3rd person controller, because I would like to be able to understand and use it from the ground up.
      Thanks again for your content. Please stay the way you are :)

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci +1

      I really appreciate your kind words! It's the nature of this system, you're able to create the functionality in so many different ways. You wouldn't believe the amount of different controllers doing it all differently. It's crazy! Although one recommendation to you is Rewired, it's an asset from the Unity store but it's my go-to system. I've used it for the last 7 years or so and mirrors the older system more closely. I do have a full tutorial on setting it up too :)

    • @agonyzx
      @agonyzx Před 3 měsíci

      @@SpeedTutor Just another little problem I came across. I have the same setup as you do in the video and everything works, but as soon as I close my unity project and open it up again I'm greeted with the following error: NullReferenceException: Object reference not set to an instance of an object
      ThirdPersonController.HandleMovement () (at Assets/Scripts/ThirdPersonController.cs:43)
      ThirdPersonController.Update () (at Assets/Scripts/ThirdPersonController.cs:38)
      The problem is easily resolvable by removing the Player Input Handler Script from the Game Object and then re-adding it again right after. But it's a bit tedious to always do that after I close/restart my project. Do you have any idea what can be the cause of that?

  • @Angel-xp1jy
    @Angel-xp1jy Před 22 dny +1

    dang, unity really did it overcomplicated , you will have to write 50 lines of code, before even start using the new input system :D, thank you for this tutorial, we will need it!

    • @SpeedTutor
      @SpeedTutor  Před 21 dnem

      Haha, good luck with it! :) Once you have the base, it moves fairly quickly :)

  • @bsdrago
    @bsdrago Před 5 měsíci +1

    incredible!! Congrats!

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci +1

      You're very welcome, I hope you find it useful! :)

  • @ZacharyHelm
    @ZacharyHelm Před 5 měsíci +1

    Thanks for covering this! It is *still* the "new" input system, somehow. Did GGJ this past weekend and no one on my 6 person team was comfortable with Input System despite Unity being our most common ground for experience. imo the documentation/learning materials need to be iterated on and improved further. Quirks must be noted, etc.

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci +1

      I completely agree on that. This input system is the most secret thing around, if they really want up-take. It needs to have really strong official documentation and videos on it. I've tried my best to cover a lot of bases in this video. As you can imagine, there are so many use cases and nuisances. Best of luck with the GGJ!

  • @risingforce9648
    @risingforce9648 Před 5 měsíci +2

    can you make an extra video of this using state machine? ... I still learning in INput System , but sometimes I found something odd with the state machine. so thanks, and amazing great tutorial.

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      I'll see what I can do! Thanks for the suggestion!

  • @yours_indie_game_dev
    @yours_indie_game_dev Před 5 měsíci +1

    you can just do player.move when u generate a c# class in staed of creating a string for move actoin. applies to other actions, there's a positive /negative1d biding in axis action type for 2d player to map A n D instead of usin vector2composite

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      Thanks very much for the suggestion! I really appreciate that.

  • @jameslafritz2867
    @jameslafritz2867 Před 4 měsíci +3

    One of the tricks that I use is the "Generate C# Class" option. You then use this (The Interface) in your Player controls singleton class instead. The nice thing about this is you do not have to manage the names yourself, and if you add/delete/change an action map it auto updates the code for you.

    • @SpeedTutor
      @SpeedTutor  Před 4 měsíci +1

      Thanks for the suggestion :) How long have you been using the Newer input system?

    • @jameslafritz2867
      @jameslafritz2867 Před 4 měsíci +1

      @SpeedTutor since it came out. It was originally a pain to use. Lots of great improvements since then like you said in the video I perfer to use both, the new input for the project and the old input fir quick debug testing/cheats to make testing easier

    • @SpeedTutor
      @SpeedTutor  Před 4 měsíci

      I actually normally use Rewired if you've never tried it out :) Thanks for giving your thoughts though.

    • @jameslafritz2867
      @jameslafritz2867 Před 4 měsíci

      @SpeedTutor I have heard of it. Haven't actually used it. At the time it appeared that it was similar to the new input system, so I went with the Free option. I am sure that it has developed over time and probably makes some things easier, probably more features than the new input system.

    • @jameslafritz2867
      @jameslafritz2867 Před 4 měsíci

      Or maybe I am thinking of InControl.....

  • @CoreDreamStudios
    @CoreDreamStudios Před 2 měsíci +1

    Great tutorial, gonna look into the Patreon as soon as I can get some $ going. I do notice if I make a cube and make it big enough for the FPS controller to be on, I fall through the other side like I'm flipped.

    • @SpeedTutor
      @SpeedTutor  Před 2 měsíci +1

      I really appreciate that, my friend :) I'm not sure what you mean about the cube? What are you using it for? Does it have a collider on it? That would stop you falling through :)

    • @CoreDreamStudios
      @CoreDreamStudios Před 2 měsíci

      @@SpeedTutor I think I figured that part out, my issue is, if I use the mouse to move, like I made a plane with a collider on it, and 2 boxes to jump on with a box collider. If I move with the mouse or stick, i just get kicked off it for some reason.

  • @ItzTmod
    @ItzTmod Před 5 měsíci +1

    still at the intro, but i know this is going to be a banger and teach me alot of things. I wish that after finishing this i can have enough knowledge to make a controller myself.

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      I hope you find it useful and it helps you out. Of course, it's only the start of getting your ideas together as input is a long process. Haha.

    • @ItzTmod
      @ItzTmod Před 5 měsíci +1

      @@SpeedTutor yup! Thanks for these videos bud!

  • @Digildon
    @Digildon Před 4 měsíci +1

    thanks

    • @SpeedTutor
      @SpeedTutor  Před 4 měsíci

      What are you working on?

    • @Digildon
      @Digildon Před 4 měsíci +1

      @@SpeedTutor eh, lots of small, never see their end projects, at least now they will be with a normal input system.
      You can see my latest work on my youtube channel if you are interested.

    • @SpeedTutor
      @SpeedTutor  Před 4 měsíci

      Awesome, I'll take a look!

  • @rageur11
    @rageur11 Před 5 měsíci +2

    Great tutorial !
    I just have a question about the PlayerInputHandler script :
    why do you do the mapping by string (action map name and action reference name) instead of using an InputActionReference ?
    i find it way easier, and if you change the name of the actionmap or of the action, no modification have to be made in the code .
    ex :
    [SerializeField]
    private InputActionReference _moveActionReference;
    private InputAction _moveAction;
    private void Awake()
    {
    _moveAction= _moveActionReference.action;
    }
    is there a specific reason to pass by name ?

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci +1

      That's a great suggestion, I made it very simple for people who have struggled to understand the system by giving them the most visually logical examples. I appreciate you coming along to comment because that's what I wanted, I want people to learn from everyone! :)

  • @gameswithelectron
    @gameswithelectron Před 5 měsíci +1

    Why are we finding InputActions if we can have reference using [serializedfield]?

  • @pim-expert
    @pim-expert Před 4 měsíci

    Great tutorial, thank you. I spent a lot of time going around in circles until I followed this step by step, and translated it into my requirements.
    One thing I am still struggling with is changing the context of the keys when I go from game to in-game menu (game still running in background). For example, Spacebar has a different purpose. I tried to use .SwitchcurrentActionMap() but it gets itself in a mess. Togglong between two maps ends up with both being disabled. Have you any tips on this, or would you use a different approach to switching contexts?

    • @SpeedTutor
      @SpeedTutor  Před 4 měsíci

      I can see what problem you might have, my only appropriate would be to disable other components that don't need to function when on your menu. So therefore no other inputs would matter. I can't give a more concrete solution because I have used this system for every situation, as there are hundreds of different minor use cases. Do let me know if you find a good work around though! :) Thanks for watching.

  • @melanieconners7593
    @melanieconners7593 Před 3 měsíci

    Hi and sorry if this is a stupid question. I did everything for movement (am at part of Testing the fps controller) and everything works really, its really amazing. I did that 2 days ago. I reloaded my project today and when I try to move now, I keep getting a NullReferenceException and I didn't touch anything, only play button. Would you happen to know why? I tried a few things to fix it but I am still very new to programming.

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci

      You might want to move the GetComponent reference to the start method? If it isn't already, as it might be trying to find it before it exists :)

  • @bruceu7048
    @bruceu7048 Před 3 hodinami

    Good tutorial, but still can you tell, why you doesn't use a generated C# class? Isn't it easier for code or it maybe slower? I just asking cause don't know which to better for using and prefer on that. Thanks.

  • @VeGaDrOnE
    @VeGaDrOnE Před 5 měsíci

    Hi! I'm making a simple 2D space game with a top-down view where I control a spaceship, pick up packages, and deliver them to planets of matching colors. It's a simple project to better understand Unity and get my hands dirty. I want to put acceleration on the RT (Right Trigger) and rotation on the left joystick. Now, I can achieve this using the old input system with transform.translate() and transform.rotate(). Is there a way to bind these methods to the keys I want to use using the new input system? I've tried many things but can't get it to work. Any suggestions?

  • @rooke0855
    @rooke0855 Před 2 měsíci

    quick question how would i make sprint a toggle?

  • @Gr3gYx
    @Gr3gYx Před 3 měsíci

    Hey! Nice tutorial, I'm going to use this to learn, but I have a question: Do you have an example of implementing the "ONLOOK" function for a 2D top-down shooter-esque game? I cannot find an example for that anywhere. I want to be able to use my mouse to shoot wherever I'm pointing at, and maybe a controller to aim and shoot in the right stick direction 🙄

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci

      You'd most likely want to create a raycast to your mouse position and then have the logic within that :)

  • @marcospaulo6697
    @marcospaulo6697 Před 5 měsíci

    my inputs are working, but thay doesn't update while i'm playing, meaning that i cant change directions once i start walking. what did i do wrong? Great tutorial btw Figured out!
    Edit :figured it out, it was because of the hold and tap parameters, in this mater, should i add a new config in the playerInputHandler, for all new parameters i want to add?

  • @castlecodersltd
    @castlecodersltd Před 2 měsíci

    A really great tutorial. 🙂 I have one bug when reconnecting a controller (generic Xbox Controller). I get the reconnect message - excellent, but then I get an immediate disconnect for the same device which means my dialog pops up again 😞. Any idea why this might be please?

    • @SpeedTutor
      @SpeedTutor  Před 2 měsíci +1

      I wish I could give you a more concrete answer on that because it didn't happen to me but could be worth googling or throwing it into some AI for some tips?

  • @SGUDevs
    @SGUDevs Před měsícem +1

    download the first person and third person controllers spend time analyzing them and then try your own out

  • @pkmnjourney
    @pkmnjourney Před 5 měsíci +1

    Thanks for thr tutorial it really helped a lot. Unfortunatley Im facing an issue where the controller doesnt work after building the game. Keyboard and controller work great in editor but after building only the keyboard and mouse work :(

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      That's strange, did you Google the issue?

    • @pkmnjourney
      @pkmnjourney Před 5 měsíci

      @@SpeedTutorive done some further debugging and it turns out it was due to the steam integration requiring steam input
      i disables the steam integration temporarily and it works now. Thank you 😊

  • @emircykman_music
    @emircykman_music Před 3 měsíci +1

    0:04 That's me since i decided to switch to the new Input System. (I know it's worth it, though).

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci +1

      Haha, I know how you feel - Many, many do! :) Are you feeling more confident yet?

    • @emircykman_music
      @emircykman_music Před 3 měsíci +1

      @@SpeedTutor well.. to be honest, it'll take me some time to get used to it haha. And by the way, this video is has been very helpful, so thank you!!
      I'm definitely subscribing :)

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci +1

      Thanks man, I really appreciate it and best of luck with your project(s)

  • @CuriousWithCoding
    @CuriousWithCoding Před měsícem

    Hi, good informative video. I think there may be an error in your playerInputHandler. I am relatively new to unity and c# but I think when you call Destroy(gameObject) in the else block within Awake(), you need to check all actions are not null within OnDisable().
    The reason for this is that if the code is run sequentially then moveAction and the rest are never instantiated when a new object is being checked and removed by your code. Thus, will cause an exception within OnDisable() which is called by Destroy(gameObject). I think this comment makes sense.
    Of course I could be wrong.

    • @SpeedTutor
      @SpeedTutor  Před měsícem

      If you're referring to when I specify an instance and use Destroy, that's just to stop the system from making duplicates of that gameobject if we moved scenes. It makes sure we only ever have one :)

    • @CuriousWithCoding
      @CuriousWithCoding Před měsícem

      Thanks for the friendly reply. :)
      I understand the purpose of the code.
      I was referring to when the scene changes and that duplicate is destroyed. The Destroy() method will call OnDisable(). I think OnDisable () needs to check that the objects within it are not null because your code will call OnDisable() before the objects that OnDisable() use are assigned a reference.
      I think this error will only occur when a duplicate is created. But I am not sure if it would cause the game to stop working.

  • @WyMustIGo
    @WyMustIGo Před 2 měsíci

    Have they fixed the bug that you discuss in the beginning?

    • @SpeedTutor
      @SpeedTutor  Před 2 měsíci

      I'm not sure about that one, as I haven't tried to update the package yet.

  • @thecrin5843
    @thecrin5843 Před 3 měsíci

    Hello, a question, ui toolkit is not yet compatible with input system? Because now I'm seeing that for el.menu to work with that tool, you first need the mouse Click for the control to respond,Seeing this, does it mean that it is still advisable to continue using the old UI?

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci +1

      I always recommend using features that are fully supported across their tools, rather than things that are still at the fairly early adaption stage. Just because you're often missing use cases and there may be other things that you find a long the way. :)

  • @littleface7060
    @littleface7060 Před 5 měsíci +2

    YES!!!!
    FINALLY!!!!!!!!
    RAAAAAAAAAAHHHHHHHHHHHHHHHHHHHH

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      I hope you find it useful, my friend :)

  • @SamNBCA
    @SamNBCA Před 5 měsíci +2

    A question? why are we reading the sprint as a float value rather than just a bool like jump? I'm not understanding the reasoning... and I want to.
    **Update: I think I figured it out... ...With the Jump we are just initiating the jump so we only need a quick input trigger, where as the sprint needs consistent input so that it continues to sprint when the button is held down. Basically the difference, between GetKey and GetKeyDown.

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci +1

      You're exactly right, I mention it in the reference part at the beginning of the video. Needless to say, I appreciate you coming to watch and comment. Working on any projects?

  • @pliniojrm
    @pliniojrm Před 5 měsíci +2

    @SpeedTutor, may you share the git for repository of this video?

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci +1

      What repository are you speaking of? Sorry, it was a long video. Haha. Could you remind me, was it something I used in the video?

    • @pliniojrm
      @pliniojrm Před 5 měsíci

      @@SpeedTutor the project source used in the video. I watched, but i'd like to see often the code. Having to find specific timestamp in the video just to find the reference of the project in the video is a bit tiresome. If you have saved the project of this video in a repository, would be great to access it for references.
      Have you not upload it to a git?

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci +1

      Oh it's all on my Patreon, just like all the other scripts and projects. That's where all my content goes :)

    • @pliniojrm
      @pliniojrm Před 5 měsíci

      @@SpeedTutor oh i understand. thank you for the reply though. Keep doing the good work! Cheers

  • @stylie473joker5
    @stylie473joker5 Před 5 měsíci

    I appreciate the amount of work and effort you put into your videos thank you btw does this cover how to detect if a controller is being used at the moment or a keyboard and mouse so that i switch the Ui button prompts to use Controller ones or M&K prompts ?

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci +1

      I do have a part which lets you know when take control with the mouse and then try and use a gamepad again, find the UI navigation again.

  • @kevz_14
    @kevz_14 Před 3 měsíci

    Erm... my look up or down rotation doesnt work. Also my character is very jittery in the y axis. staying still and its like its had 20L of coffee

  • @erdemkizil
    @erdemkizil Před 5 měsíci +1

    Hi @SpeedTutor. First of all, thank you for this lesson. I have a question. The player continues to jump as long as i hold the jump button. However I want the character to jump only once as long as i hold the jump button. How can I do that?

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci +1

      Someone actually had this exact question recently, if you check down in the comments you should actually find it. The commenter actually posted a solution :)

    • @erdemkizil
      @erdemkizil Před 5 měsíci

      ​@@SpeedTutor I missed the comment and finally i fixed my problem. Thank you so much again.

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci +1

      Awesome, how did you fix it? Just so others can learn from you! Plus I always love to hear some solutions too. I refer back to comments often :)

    • @erdemkizil
      @erdemkizil Před 5 měsíci

      ​@@SpeedTutor I added the following codes to the PlayerInputHandler script to create the GetKeyUp and GetKeyDown functions for the jump action:
      public bool JumpTriggeredPress { get; private set; }
      public bool JumpTriggeredRelease { get; private set; }
      private void Update()
      {
      JumpTriggeredPress = jumpAction.WasPressedThisFrame() == true ? true : false;
      JumpTriggeredRelease = jumpAction.WasReleasedThisFrame() == true ? true : false;
      }

  • @JGCD21
    @JGCD21 Před 2 měsíci +1

    How do you transfer this into shooting guns? Is it the same input system code for it, I cant find an fps shooter tutorial with this new system.

    • @SpeedTutor
      @SpeedTutor  Před 2 měsíci +1

      Yes it would be, just create an action for "Firing" or "Shooting" which would be a button and tie that to functionality which makes the shooting happen :)

    • @JGCD21
      @JGCD21 Před 2 měsíci +2

      @SpeedTutor Thanks! Great Tutorial!

    • @SpeedTutor
      @SpeedTutor  Před 2 měsíci +1

      You're very welcome :)

  • @lucidedits9958
    @lucidedits9958 Před 5 dny

    hey man when im doing the FPS one for the camera its telling me that the "Top-level statements must precede namespace and type declarations." do you know how to fix this??
    Edit: I fixed it but now im just flooded with a bunch of different errors despite me copying you exactly.

    • @SpeedTutor
      @SpeedTutor  Před 5 dny +1

      Is your namespace at the top, before the class definition?

    • @lucidedits9958
      @lucidedits9958 Před 4 dny

      @@SpeedTutor yeah. I believe I fixed it but now im just getting a bunch more code errors.

  • @gmangman123
    @gmangman123 Před 5 měsíci +3

    wooww very long tutorial my friend.

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci +1

      Haha, it is but I wanted to cover most of the important topics for people. :)

  • @SGUDevs
    @SGUDevs Před měsícem

    watchout avoid adding model into FPS it will give you errors due to animation being used instead of programming locomotion data will be stuck trying to figure it out for 3 days

  • @Squatch-A-Toon
    @Squatch-A-Toon Před 5 měsíci

    Anyone having trouble with the look not working with the mouse? When I enter play mode to test eh mouse will not register data and move the camera accordingly, but when using a controller(gamePad) the camera works perfectly. would anyone know what the problem might be? the code and Input map are set up to the same way as in the video.

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      You're using Mouse(Delta)?

    • @Squatch-A-Toon
      @Squatch-A-Toon Před 5 měsíci

      @@SpeedTutor As the binding in the Input Action map when setting up the inputs for the mouse look action. Which the look action is taking in the Vector2 Value. In Handle Rotation() the code is the same as in the video.

    • @Squatch-A-Toon
      @Squatch-A-Toon Před 5 měsíci

      @@SpeedTutor Did some Extra Playing around and it was something wrong with how I set up the character GameObject in the scene. Had to create a second player and it worked fine on the second one. Possible because I had the PlayerInput Action Map on the Player Object and maybe that caused the issue because when I removed it the original Player object worked.

  • @HellobozoFR
    @HellobozoFR Před 3 měsíci

    Hey, I’m very new to coding, and I’m having a little bit of an issue. At 15:08 when you start making the move action Equals player controls, for me, it shows the error CS0103 for sprint, move, jump, action map name, and look. Do you have an idea how I can fix this?

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci

      Did you create the field for them? As in [SerializeField] private string sprint = "Sprint" and so on?

    • @HellobozoFR
      @HellobozoFR Před 3 měsíci +1

      Fixed it

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci

      Awesome, how did you fix it?

    • @HellobozoFR
      @HellobozoFR Před 3 měsíci

      I just rewrote all of the code and it works this time

  • @nutsandy7183
    @nutsandy7183 Před 5 měsíci

    Im sure its a great help and appreciated. But i still dont get why the new one is supposedly better than the old one

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      It's because you can control the buttons you use for both gamepad and other inputs, in a more usable way. As the old input system was pretty limited for multiple options like console.

  • @SpeedAmo
    @SpeedAmo Před 4 měsíci +1

    i keep on getting errors when i do the Instance = this; it is saying that this is not a thing

    • @SpeedTutor
      @SpeedTutor  Před 4 měsíci

      Did you need any capitals in the words?

    • @SpeedAmo
      @SpeedAmo Před 4 měsíci

      i basically copied what you did and sometimes it kept giving me errors that should not be there@@SpeedTutor

  • @glenfoxh
    @glenfoxh Před 5 měsíci +1

    I give great thanks to Unity for making simple coding mechanics vastly more complicated for game programmers. And changing how we code things once again, so our old program code no longer work at all. Is par for working with Unity. Noting new there.
    This info only helps me to see I made the right choice in dropping Unity, and going to Unreal.

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci +1

      I'm glad that you're having a good experience in Unreal! Whatever helps you make the best games possible, is all you can ask for. Best of luck with your projects.

    • @glenfoxh
      @glenfoxh Před 5 měsíci

      @@SpeedTutor What ever helps. That is the truth. ^.^
      I'd never say anyone was doing something wrong for wanting it use Unity, mostly if they made something good with it, or at least felt they could.
      Despite how good a program Unity is, With the way the devs have handled it, that is with how updates often broke my works, and paid for assets, among other things I felt was not good, trying to use Unity had left a bad taste in my mouth.
      I know full well Unity is a good program, for plenty have made some good games with it already. Games I have enjoyed playing. But its level of instability however is just not for me.
      Yeah, Unreal is indeed that, unreal. It's large yet stable, even when it's updated. And that is very important to me, for there is a longer learning curve to learn something that massive than it takes to learn Unity, aside form the basics, it not be good for by the time I have learned how to use it, how it works changes in a way, it no longer works that way anymore, as had been the case with Unity.
      I give much credit to those that have had success with Unity. They are certainly better developers than I am. ^.^

  • @SuperMillwall
    @SuperMillwall Před 4 měsíci

    I’m having an issue where I close the project and open it back up I have the following error message…
    NullReferenceException: Object reference not set to an instance of an object
    When I click it, it says the following…
    NullReferenceException: Object reference not set to an instance of an object FPSController.HandleMovement () (at Assets/Scripts/FPSController.cs.41) FPSController.Update () (at Assets/Scripts/FPSController.cs:35)
    The code on line 41 is the following
    float speed = walkSpeed * (inputHandler.SprintValue > 0 ? sprintMultiplier : 1f);
    The line on 35 is…
    HandleMovement ();
    Do you have any idea what I need to do to get this to work? Like I said, it was working perfectly fine when I first followed your video but once I closed the project and opened it back up, I have this error and I can’t play test anything.
    Any help would be appreciated!

    • @SpeedTutor
      @SpeedTutor  Před 4 měsíci

      Where do you have the singleton creation in your manager script? In Start or Awake?

    • @SuperMillwall
      @SuperMillwall Před 4 měsíci

      @@SpeedTutor
      This is my FPSController.cs
      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class FPSController : MonoBehaviour
      {
      [Header("Movement Speeds")]
      [SerializeField] private float walkSpeed = 3.0f;
      [SerializeField] private float sprintMultiplier = 2.0f;
      [Header("Jump Parameters")]
      [SerializeField] private float jumpForce = 5.0f;
      [SerializeField] private float gravity = 9.81f;
      [Header("Look Sensitivity")]
      [SerializeField] private float mouseSensitivity = 2.0f;
      [SerializeField] private float upDownRange = 80.0f;
      private CharacterController characterController;
      private Camera mainCamera;
      private PlayerInputHandler inputHandler;
      private Vector3 currentMovement = Vector3.zero;
      private float verticalRotation;
      private void Awake()
      {
      characterController = GetComponent();
      mainCamera = Camera.main;
      inputHandler = PlayerInputHandler.Instance;
      }
      private void Update()
      {
      HandleMovement();
      HandleRotation();
      }
      void HandleMovement()
      {
      float speed = walkSpeed * (inputHandler.SprintValue > 0 ? sprintMultiplier : 1f);
      Vector3 inputDirection = new Vector3(inputHandler.MoveInput.x, 0f, inputHandler.MoveInput.y);
      Vector3 worldDirection = transform.TransformDirection(inputDirection);
      worldDirection.Normalize();
      currentMovement.x = worldDirection.x * speed;
      currentMovement.z = worldDirection.z * speed;
      HandleJumping();
      characterController.Move(currentMovement * Time.deltaTime);
      }
      void HandleJumping()
      {
      if (characterController.isGrounded)
      {
      currentMovement.y = 0.5f;
      if (inputHandler.JumpTriggered)
      {
      currentMovement.y = jumpForce;
      }
      }
      else
      {
      currentMovement.y -= gravity * Time.deltaTime;
      }
      }
      void HandleRotation()
      {
      float mouseXRotation = inputHandler.LookInput.x * mouseSensitivity;
      transform.Rotate(0, mouseXRotation, 0);
      verticalRotation -= inputHandler.LookInput.y * mouseSensitivity;
      verticalRotation = Mathf.Clamp(verticalRotation, -upDownRange, upDownRange);
      mainCamera.transform.localRotation = Quaternion.Euler(verticalRotation, 0, 0);
      }
      }

    • @SuperMillwall
      @SuperMillwall Před 4 měsíci

      @@SpeedTutor This is my PlayerInputHandler.cs
      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      using UnityEngine.InputSystem;
      public class PlayerInputHandler : MonoBehaviour
      {
      [Header("Input Action Asset")]
      [SerializeField] private InputActionAsset playerControls;
      [Header("Action Map Name References")]
      [SerializeField] private string actionMapName = "Player";
      [Header("Action Name References")]
      [SerializeField] private string move = "Move";
      [SerializeField] private string look = "Look";
      [SerializeField] private string jump = "Jump";
      [SerializeField] private string sprint = "Sprint";
      private InputAction moveAction;
      private InputAction lookAction;
      private InputAction jumpAction;
      private InputAction sprintAction;
      public Vector2 MoveInput { get; private set; }
      public Vector2 LookInput { get; private set; }
      public bool JumpTriggered { get; private set; }
      public float SprintValue { get; private set; }
      public static PlayerInputHandler Instance { get; private set; }
      private void Awake()
      {
      if (Instance == null)
      {
      Instance = this;
      DontDestroyOnLoad(gameObject);
      }
      else
      {
      Destroy(gameObject);
      }
      moveAction = playerControls.FindActionMap(actionMapName).FindAction(move);
      lookAction = playerControls.FindActionMap(actionMapName).FindAction(look);
      jumpAction = playerControls.FindActionMap(actionMapName).FindAction(jump);
      sprintAction = playerControls.FindActionMap(actionMapName).FindAction(sprint);
      RegisterInputActions();
      }
      void RegisterInputActions()
      {
      moveAction.performed += context => MoveInput = context.ReadValue();
      moveAction.canceled += context => MoveInput = Vector2.zero;
      lookAction.performed += context => LookInput = context.ReadValue();
      lookAction.canceled += context => LookInput = Vector2.zero;
      jumpAction.performed += context => JumpTriggered = true;
      jumpAction.canceled += context => JumpTriggered = false;
      sprintAction.performed += context => SprintValue = context.ReadValue();
      sprintAction.canceled += context => SprintValue = 0f;
      }
      private void OnEnable()
      {
      moveAction.Enable();
      lookAction.Enable();
      jumpAction.Enable();
      sprintAction.Enable();
      }
      private void OnDisable()
      {
      moveAction.Disable();
      lookAction.Disable();
      jumpAction.Disable();
      sprintAction.Disable();
      }
      }

    • @devona3735
      @devona3735 Před 4 měsíci

      Im having same issue and cant figure it out, any update on this problem?

    • @seva4241
      @seva4241 Před 4 měsíci

      EDIT: I figured out the issue. It is due to the execution order. The singleton is being created in the Awake method, while the FPSController is setting reference to it in the Awake method aswell. Change the FPSController from Awake() to Start() and it solves it. You could also change the execution order manually, or figure out a different solution i'm sure but this is what I did.

  • @africantrenor
    @africantrenor Před 3 měsíci +1

    I dont know if its just me getting all these errors... somebody please help, my code is exactly the same and everything gives errors

    • @africantrenor
      @africantrenor Před 3 měsíci +2

      my bad, im soopid, my code was funny, thanks for the tutorial!

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci

      Haha, what happened?

    • @africantrenor
      @africantrenor Před 3 měsíci +1

      Happened that instead of keeping jumptrigger as a bool and sprintvalue as a float, I had them both as Vector2 bcs I was feeling funny lol

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci +1

      Haha, you just wanted to make your own life more difficult :P

    • @africantrenor
      @africantrenor Před 3 měsíci

      I actually do have a problem, everything looks the same as in the video, but when I move the mouse, instead of moving the camera, it moved the player itself lol, and the joystick in gamepad, it only works left to right but not fornt and back, and the right stick doesnt move the camera at all

  • @random_precision_software
    @random_precision_software Před 5 měsíci +1

    What was that path name i have to go too to fix the bug ? Lol only joking

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      Haha, I couldn't fit that in the description but here's the file path if you did need it: C:\Users\{user}\AppData\Local\Unity\cache\packages\packages.unity.com\com.unity.inputsystem@1.7.0\InputSystem\Editor\Internal\AdvancedDropdown\AdvancedDropdownGUI.cs

    • @random_precision_software
      @random_precision_software Před 5 měsíci

      ​@@SpeedTutorthnx, did you read my Shopify problem, can you sell digital products like Games in a Zipped folder?

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      Oh I didn't realise you gave a question about that. Yes you can, you just need to upload using their download add on. I think :)

    • @random_precision_software
      @random_precision_software Před 5 měsíci +1

      Yes it think I saw a video on that.. Thnx​@@SpeedTutor

  • @lmao01
    @lmao01 Před 5 měsíci +1

    I was looking for few information if my approach in code is correct but didn't find it here unfortuantely.
    It doesnt cover cases where ui overlaps and you want to trigger something from ui without ie firing. What if the ui should only block particular actions but still allow other ie. movement.
    Every action here is coupled together to your input handler. I'm not sure why would you do this when you are just setting the values here. After a while input handler will hold 50 properties where there would be no reason to not just store them on the component (even more so next to InputActionReference).
    If you would like to migrate/extend script ie. speed based difficulty you will have to either hook it in input handler or have two places that handle this speed creating confusion. Even more so when more things will guide the speed.
    There shouldnt be needed a reason why everything needs to know about input handler manager reference.
    While there is many yt devs creating input system tutorials I never see a case covering more complex cases so unfortunately this will blend with water.
    Although I'm just a random opinion guy, I'm still sure that this will help many devs so keep up the good work!

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci +1

      No, no. You're very welcome to your opinions and I asked for them too. I think it's important to get as many perspectives as possible. As I mention that the input system can be used, programmed and implemented in so many different ways. I was just trying to do a blanket tutorial on most of the common things people struggle with when it comes to input. The problem with more nuanced UI examples, it's very project dependant. You could spend 10 hours easily covering different scenarios and it still wouldn't be enough but I really do hope you find or work out everything out.
      Myself, I use Rewired from the Unity store because it is a really robust system.

  • @SondaPower
    @SondaPower Před 5 měsíci

    Hi, what program do you use for recording? because you have wrong settings or something because is bad quality when zoomed in. I am trying to help as you helped me and others 😁😁

    • @SpeedTutor
      @SpeedTutor  Před 5 měsíci

      I'm using OBS but my resolution is 1440p and I downscale to 1080p because of the size difference. You think I should change?

    • @gameswithelectron
      @gameswithelectron Před 5 měsíci

      @@SpeedTutor Yes, text is kind of blurry as compared to other yt tutorials.

  • @TheJoyBoySSK
    @TheJoyBoySSK Před 2 měsíci +2

    Didn't understand at all lol, you're explanation and everything was professional but it's just that a certain dumb**s here happens to be a beginner 😂. Would be happy if someone gave a starting point on how to reach a point to understand this video 😵

    • @SpeedTutor
      @SpeedTutor  Před 2 měsíci +1

      Haha, you could start with some beginner C# tutorials maybe? You just need to get to grip with a few basics really :) The newer input system is quite complex. I have a series on my channel and various others.

    • @TheJoyBoySSK
      @TheJoyBoySSK Před 2 měsíci +1

      @@SpeedTutor certainly will start by them, when it comes to creative programming like these stuff involved in games, I haven't trained my brain to think that way yet, Thanks for the tip and can you make a vid of unity for dummies cuz with the amount of professionalism and industry level your content is I can really see a proper guiding light shine in that context for PPL like me!

    • @SpeedTutor
      @SpeedTutor  Před 2 měsíci +1

      I do have a basic C# series and a few other basic tutorial series too! :) If I were you, I'd try and complete some really little projects and accomplish those tasks, little by little. It's the small progressions which really drive you forward.

    • @TheJoyBoySSK
      @TheJoyBoySSK Před 2 měsíci

      @@SpeedTutor Great! I'm starting on your series as base and will do some standalone projects. I'll keep on updating my progress in comments

  • @coregamestudio
    @coregamestudio Před 8 dny

    This new input system is total garbage!

    • @SpeedTutor
      @SpeedTutor  Před 8 dny

      Not a big fan?

    • @coregamestudio
      @coregamestudio Před 7 dny +1

      @@SpeedTutor I am a huge fan of your video's but the new input system is just terrible lol. I still use it but it is still very buggy.

    • @SpeedTutor
      @SpeedTutor  Před 7 dny

      I agree, it would be nice for them to really fine tune the full thing. I appreciate the kind words!

  • @velkyngame
    @velkyngame Před 3 měsíci

    Thanks for this! Best up-to-date Input System tutorial on CZcams

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci +1

      I'm not sure on the exact right and wrongs in this case, there might be slightly downsides in terms of performance but ultimately you need to get something that you understand and what works for you. So if it works and you don't see any major impacts, go with it. You can always change things up, if issues arise :) Sorry that's not definitive but I don't know the exact ins and outs :)

    • @velkyngame
      @velkyngame Před 3 měsíci +1

      @@SpeedTutor Thank you, really appreciate your reply :)

    • @SpeedTutor
      @SpeedTutor  Před 3 měsíci

      You're very welcome, my friend. What are you creating?

    • @velkyngame
      @velkyngame Před 3 měsíci

      @@SpeedTutor Working on an action-adventure game and currently reworking my character controller. This is the reason your tutorial was uploaded at the perfect time haha. I really love how you interact with your audience. But man, that seems stressful! Hope you get some rest!

  • @Andrashh
    @Andrashh Před měsícem

    What should I do if I want jumpAction to be performed only once even when I hold down space?
    My current solution is to put xx.Jump.triggered in Update but this feels like a workaround. Not a solid solution.

    • @SpeedTutor
      @SpeedTutor  Před měsícem

      What happens if you don't?

    • @Andrashh
      @Andrashh Před měsícem

      @@SpeedTutor If I'm not holding down, just pressing, it still gives too much true statments thus using jump multiple times.
      If that's what you mean.