• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by dnadevelopers · Aug 22, 2014 at 05:55 PM · androidmovementinputtouchbuttons

Help with touchscreen controls

Hi everybody! I'm new to Unity and to scripting... I'm trying to make a small game for android but I'm having some trouble with the touchscreen movement, it works fine with the keyboard on the PC. I only need to move my player left and right. I have tried lots of scripts found on the Internet but none seemed to work... My original idea was to divide the screen in half and make each half a button. Another way I think is to make two buttons for right and left, I have tried but I can't understand how to do it. I use C# but Javascript is fine as well. If you could show me how you'd do it, it will be very much appreciated. Thanks in advance. P.S.: I know how to move the player, I just don't know how to use touchscreen input.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

2 Replies

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by Landern · Aug 22, 2014 at 05:56 PM

 if (Input.touchCount == 1)
 {
     Touch[] touch = Input.touches[0];
     if (touch.position.x < Screen.width/2)
         // Something that does what you need if left side is touched
     else if (touch.position.x > Screen.width/2)
         // Something that does what you need if rightside is touched
 }
Comment
Add comment · Show 4 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image daveinpublic · Aug 22, 2014 at 06:05 PM 0
Share

I have a question - where would you put that script, on the player?

avatar image Landern · Aug 22, 2014 at 06:22 PM 0
Share

Could be, could be on the camera, either way in an Update function/method. You can put it on what ever you want, i don't know your project structure.

avatar image dnadevelopers · Aug 22, 2014 at 07:44 PM 0
Share

Thank you so much it finally works!

avatar image ShazBang · Nov 30, 2014 at 02:39 AM 0
Share

hey, this is the exact code I have been looking for.

I am super noob at this, so why do i get errors like

';' expected. Insert a semicolon at the end.

Unexpected token: else.

Unexpected token: }.

expecting }, found ''.

Please help, where do I put this code? is it Java script or C#?

I'm terrible at this.

avatar image
0

Answer by luniac · Nov 30, 2014 at 02:51 AM

try TouchScript, its free and worked great for me after around 30 hours of fiddling around to learn how it works.

https://touchscript.github.io/

u could totally create an invisible plane for the left side of the screen and one for the right side. u can attach a press gesture to each plane and have the callback move the character left or right depending on which plane was pressed. What's nice is that you can also test this with mouse because touchscript has a built in emulator for it.

Alternatively you can have a full screen layer for the camera and a press gesture on it. Whenever any press is detected simply mathematically check whether its to the left or to the right of the midpoint of the screen, and then move the character accordingly.

I like second solution better since you don't have to make any extra objects.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Moving character with touch buttons (Android) 1 Answer

Input lag on Andorid but not in Unity 1 Answer

Android: Touch Input Timeout Issue 1 Answer

Move horizontally on touch 0 Answers

Facing the players game object (upward, downward, left, right) on Android phone using joystick 0 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges