How to use TOUCH with the NEW Input System in Unity
Вставка
- Опубліковано 1 сер 2024
- This video gives an overview on how to use Touch from the new Input System through Input action assets and the PlayerInput component, how to simulate touch in the editor game view, an overview of how to build to android phone, as well as how to use the Enhanced Touch API. I go over a simple tap/touch example to help solidify these concepts.
ᐅGet the full Source Code Bundle to my Unity Tutorials 🤓
sam-yam.itch.io/samyam-full-s...
📥 Download the Source Code 📥
ᐅ / 75112992
Wishlist my new game BUMBI on Steam!
store.steampowered.com/app/28...
🤝 Support Me 🤝
Patreon: / samyg
Donate: ko-fi.com/samyam
🔗 Relevant Video Links 🔗
ᐅTouch Documentation
docs.unity3d.com/Packages/com...
ᐅHow to use Unity's Input System
• How to use Unity's Inp...
ᐅHow to EASILY Build to an Android Phone in Unity
• How to EASILY Build to...
►⏱️ Timestamps ⏱️
0:00 Intro
0:25 Set Up
1:53 Input Action Assets
8:45 Player Input
9:41 Detecting Touch in Script
18:35 Build and Test
20:29 Enhanced Touch API
23:27 Outro
💖💖THANK YOU TO ALL MY PATRONS 💖💖
❯❯❯ My Links ❮❮❮
💗 Patreon 💗
/ samyg
💬 Discord Server 💬
/ discord
🐦 Twitter 🐦
/ samyam_utube
📚 Facebook 📚
/ samyam.youtube
🎵 Music 🎵
Ambient Gold
streambeats.com
👍 Like and Subscribe! 👍
🖥️ Computer Setup 🖥️
*As an Amazon Associate I earn from qualifying purchases.
www.amazon.com/shop/samyam
Disclosure: This post may contain affiliate links, which means we may receive a commission if you click a link and purchase something that we have recommended. While clicking these links won't cost you any money, they will help me fund my development projects while recommending great assets!
#unity #gamedev #devlog - Наука та технологія
Wishlist my new game BUMBI on Steam! store.steampowered.com/app/2862470/BUMBI/
Sam you understand this input system on a different level. Thank you for putting in all this work!!
This is pretty weird, but for those who use Unity Remote to test things out for your mobile app, please keep in mind that the New Input System is not supported in Remote yet (it's been 3 years already :/ ). To test your controls. you will need to actually build the app. I found this after 3 hours "fixing" my game...
Really digging all the Input System videos that you have made! This one I thought had a lot of information that is easy to digest! I sent it to my designers so they can watch it and get a feel for the tool! It's always exciting to see how Unity evolves!!!
thank you!!
Somehow, you are there to answer all my questions. I appreciate your tutorials SO MUCH. THANK YOU!
I've really been thinking about starting a simple mobile game after this current project and I use the new input system religiously at this point so very informative! I remember using the old system to try and set up a simple movement system based on starting touch. It wasn't fun from what I can remember (several years ago).
I've come back to this video twice, and twice found the solutions I needed lmao. Thanks a lot!
Best explenation of the new input system I could find! Definitely going to give it a try now. 😅Nice video!
Heads up: if you are like me, in the input debugger, you may need to right click on "Mouse" in the devices list and click "Enable Device" before the simulated touchscreen will return any values for clicks etc..
Good to know
dude. I searched the entire internet for this comment. you're a lifesaver my guy 🙏
Thank you very much for making these tutorials ❤
Lady...I learned and enjoyed it, thanks!
thx Sam, I needed this and you made the video right on time lol
Thanks for the help samyam :D
im so overwhelmed
Thank you very much !
good to finally put a voice to the twitter user - also wonderful video, gonna be using this at some point
That's really really nice 🙂
Great video!
why we use EnhancedTouch.Touch.onFingerDown += Touch_onFingerDown; in start() not in Enable() so we can unsubscribe in Disable()??
On Enable would be better, I was showcasing the function and it slipped my mind.
Best information thanks! subscribed
thank you!
You are the best.
Thanks
best description: new but not so new input system 😆
What is the best approach to call a function in another class for the action callback? For example: If I need to define "TouchPressed" in another class, is it better to make it static Class2.TouchPressed?
Thanks Sam! amazing video. I have a question. Why i can not move the object smoothly where my finger is pressing, i mean while my fingen is on press. Because looks like the object is teleporting to the position where my finger is. i would like to move an object but in a smoothly way. Thanks again i am so glad you are doing this videos.!!
Thanks, but i want onscreen buttons touch input instead of finding the touch position. Eg. i want to assign "A" key into a touch buttton, I know this can be achieved with a script comes with new input system. but if i touch a button and slide my finger outside the button area, the touch input still keeps on pressing the button. So how to implement the "on pointer down/up/enter/exit" with new input system..., Thanks
awesome
Off topic, but how did you make the font of the unity interface bold and flat?
In the case of window standalone using multiple touch screen monitors, touch coordinates are recognized strangely when building. What should I do?
I like the new touch system. Great video but how do I get a pressed/touched object?
how i can limit the Right stick input on an image but not with the OnScreen Stick, like looking on mobile devices happen i have seen it in Third person controller made by unity but it is done by right stick i hope it is understandable
Is there anyway to tell if you touched the left or right side of a screen in portrait mode?
When the touch is released, how can I get the coordinates of when it was released? canceled returns 0, 0, 0.
Love you
why the touch is registering even when i touched outside game view . an even when i stopped the game still showing Logs when i touch everywhere
Does this also work with multitouch on Windows (e.g. on Surface tablets)?
The google is not recommending me the touch about touching objects not clicking screen, what the heck.
Hi Samyam Thanks For Your Great Video I Have One Question , I have Some Object Like `House , Car , Tower etc` How To Detect That User Touch It Or Not , Before I Used `Raycast` And `Update Method` To Detected , Any Chance To Detected With ThisNEW Input System ??????
I don't think I understand this enough. I am trying to listen whenever the touch phase is changed and then get the phase to only do something on Moved. I selected Touch as the control type and path to primary touch. It seems to only run when the phase is changed, but I can't seem to return the touch so I can check the phase. I might just end up using the enhanced touch, but I don't think I need the finger returned and I think it's worse for performance? Idk I could really use a little more clarity and documents aren't working for me. Please help.
Awesome video! Do the touch inputs work when exported to WebGL, and played in a mobile phone's web browser?
I had the same question, did you ever find out? May save me some headache, thanks!
How to determine whether a click on a mobile device using Unity's new input system is on the UI or on a 3D object?
I can't get the Input Debugger to simulate touch drag events. It doesn't create a Touch control scheme when simulating touch.
Can u do on multiple players game articture
16:11 why screen 0.0 coordinates are at top left corner& offical unity documentation tells that 0.0 is bottom left corner and 1.1 is top right corner
For some reason, the player.transform.position changes once to 0,1,-10.
did you find the issue?
Good Work SamYam. I have a question. Is this new input system with Touch compatible with Unity Remote 5 ? I tested but it did not read the touch position. Maybe i made someting wrong. You know it eases the worload without building the project for mobile.
I don’t think it is unfortunately, they haven’t updated that app in years forum.unity.com/threads/new-input-system-and-unity-remote-5.735968/page-4
Bro just casually got sponsored by unity
Me: (watching this video)
Also Me: (About to fall asleep)
not gonna lie, when I compare setting up touch controllers with the New input system, vs adding a collider, event trigger component or Button component, is x1000 easier using the event or button component for touch buttons. I am looking forward to use the new input system only because with events I cannot manage to detect more than one finger input at the same time. but I cannot believe how complicated it is.
感谢分享~希望知道如何使我的UI可以屏蔽触摸输入(例如希望在我触摸屏幕时角色会发起攻击,但当我点击游戏暂停按钮时角色不会发起攻击)
so how would I have it where falling objects from the top of the screen get destroyed every time you touch them? new to unity and touch and this is confusing to me.
I recommend this video of mine! ua-cam.com/video/JID7YaHAtKA/v-deo.html
How do i do hold?
On the first TouchPressed() the touchPositionAction is always (0.00, 0.00), I guess since it's the first touch it "hasn't moved yet".
Is there a way to get the position of the very first TouchPress?.
nvm just changed the Action to Value > Vector2 and Path to primaryTouch > startPosition
I had a very similar problem. On the first click, the circle would move to 0, 0. Then on every subsequent click, it would move to the position of the PREVIOUS click (so it would lag behind by one click). I couldn't figure out why until I went back into the Input Actions and saw that the path for "TouchPosition" was set to Touch #0 > Position instead of simply Position. Fixed that, and now it works as it should. :)
Hey does anyone experience any "lag" on the touch position when playing on mobile? So in a test scene of mine (just a simple square sprite) I have an easy implementation with a dragging functionality that uses the Input system and works fine when tested in the unity editor. When building and playing it on my phone/tablet it still works but I can see a little to medium lag in the dragging. So the Square is always trying to catch up with the touch position by a delay of maybe 0.2-0.5 seconds (so its not a lot, but you really feel it). I think there is no problem with my code or my input asset configuration as its very simple and I checked it many times... Is there maybe some setting in the build settings that should be adjusted or something to consider when implementing on mobile in general?
Thanks in advance and thanks for the nice vid :)
p.s. is your video on drag and drop still up to date?
cheers
Should be up to date! Are there any errors in the scene? We also have a Discord in our description where you can join and ask in the help channel to add more details and images
@@samyam OK great then I will check your drag video again! And no there are no errors or warnings. Everything seems to work fine. It just seems that the rate at which the input-data gets processed on my mobile devices is too slow. Will head to the Discord :)
Hey, @Samyam. In the Awake() method @ 15:22 (playerInput = GetComponent(); ), I am getting an error : UNT0014: ‘PlayerInput’ is not a Unity Component. What could be the issue?
did you include "using InputSystem" up at the very top
using UnityEngine.InputSystem;
@@samyam My bad
@@samyam Yes. I did. The reference seems to be the issue of the other script.
I’ve been after a invisible touch screen joystick tutorial, the one you get on most modern portrait mobile games for player movement.
I imagine having an on screen analog/joystick that stretches to the whole canvas size would do the job. - I’m still not sure how to do this as I tried for countless hours and decided to compromise to a different movement system.
Can’t find a tutorial anywhere. Can you be the first one to make it 😅 would really appreciate it.
Btw great video
Thanks a thousand.
Thanks! Maybe in the future I will make the video! I have some cool tutorials planned for the near-term right now :)
it doesn't work. Not matter what I try. I get "Screen position out of view frustum (screen pos inf, -inf, 0.000000)" error.
Same here, have you solved it?
@@Terajoel I guess it's a version issue
I'm sure it's a version issue! It bothered me for a long time, but I have no problem with the same code in Unity6!
I keep getting the same position coordinates when I click on the screen. (0.0, 1.00, -10.00). Doesn't matter where I click on the screen it returns this value and the circle just jumps to (0.0, 1.0, 0.0). no interaction. I have gone through the video three times and still get the same results. HELP!
did you fix it?
Hey I sent you a message on Paetron about the the racing game project.
Choose the best event handler
Thank you so much for doing these videos. The unity documentation, in my opinion, is trash. It's so hard to find the information that I need, but your videos explain how to use it so well, I don't have to go digging.
does anyone else encountered an issue where the first touch position is always the left bottom corner of the game tab? no matter what. This seems like a bug in the new input system
Make sure your TouchPosition input action has a proper binding. I was having this issue before realizing it was because I didn't set the binding to be "position".
After this Video im just totaly confused how to setup a simple Touchinput to jump in my game xD
Well maybe i will try it someday but this system is pretty confusing because this context stuff makes absolutly no sense in my brain 🤷♂
Im coming from Unreal and started to love Unity for its simplicity but that InputSystem is rly uncomfortable to work with holy cow 😢
what i need to know,,,,,,,,,,,when i click ui button , it should not click the touch
Is it same for 3d games or is it only used for 2d games
This detects touch which you can use for any kind of game you want! How you implement the functionality is up to you
@@samyam I had completed this tutorial now can I implement same for 3d game
Can someone tell me what I have to do to get the IDE to recognize things like "Getcomponent" to light up in color. How I tell the IDE to know what I mean? The color remains basic white with no change on certain texts. Do I need to do a PIP install for something? Same thing with PlayerInput isn't orange; it is just white like the IDE doesn't understand what I enter. I feel like my IDE is missing definitions or.....something. I don't know. I am rather new to all this & don't have any tech friends to ask about this.
What IDE are you using? You can also join our Discord and ask in the help channel
@@samyam MS Visual Studio. I am about to leave for work; so if you happen to reply I may be late to respond. I appreciate the help.
Try asking on our discord, i don’t use MS visual studio, maybe this can help ua-cam.com/video/kfuBAhIGzrY/v-deo.html
it’s called “intellisense” the thing that recognizes the code and highlights it
@@samyam Ok thank you. More help than I've ever gotten from any Udemy instructor lol. Btw when I clicked your discord link in the bio of the video it said the invite has expired. Might just be an issue on my end.
Thank you for taking the time to respond before; I greatly appreciated it.
No worries!
discord.gg/SwCKB3Q
can you make this in 3D, kinda messed up if i try in 3d -_-
touch is always in 2d screen coordinates, if you want to convert that into Unity 3D coordinates i have a video ua-cam.com/video/JID7YaHAtKA/v-deo.html
@@samyam nice thank you so much
Check you out, helping us normies yet again with Unity's input system. 😏 Thank you for this! One step closer to having a mobile dungeon crawler.
🙌🙌
strange that enhancedTouch seems to completely bypass normal inout system and related actions!
Sent you a reply on Patreon.
Solid principals, desgin pattrens............?
genuienly ununderstandable.
what did i just see
𝙥𝙧𝙤𝙢𝙤𝙨𝙢 💕
Thanks for the amazing video !
I was using Enhanched Touch in my script and wanted to check if the touch was on a UI element. I have used the pointer over game object but it does not seem to work
if (EventSystem.current.IsPointerOverGameObject(finger.index)) { return; }