Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • 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 z7x9r0 · Jan 20, 2015 at 09:21 PM · javascriptguitouch

How Can I Visually See Touches On Screen?

I have a touch script I made below that displays the coordinates of a one finger touch on a touchscreen device. Trying to create a visual for where the touch happened on screen. Any references or ideas on how to accomplish this? Does it make a difference if the camera moves?

 var fTC : Vector2; //fTC stands for first Touch Coordinates
  
  function Update () {
      if(Input.touchCount == 1){ //Does finger count on screen equal 1?
          if(Input.GetTouch(0).phase == TouchPhase.Began){ //When touch on the touch-screen begins.
              fTC = Input.GetTouch(0).position; //The screen coordinates of the first touch. 
              Debug.Log(fTC); //Show the screen coordinates of the first touch in the console window.
              //Could put something here to make an image appear.
          }
          if(Input.GetTouch(0).phase == TouchPhase.Ended){ //When touch on the touch screen ends.
              //Could put something here to make the image disappear.
          }
      }
  }

Here's a YouTube video similar to what I am trying to do. Just the circles following touches part though. Except I'm trying have the circles appear on the first touch only, not follow. Also my camera moves in my scene. I don't know if that matters.

https://www.youtube.com/watch?v=ezgCiXfuxIg

Comment
Add comment · Show 6
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 z7x9r0 · Jan 20, 2015 at 09:47 PM 0
Share

Sources/References I'm looking at:

http://docs.unity3d.com/ScriptReference/Camera.WorldToViewportPoint.html

http://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html

http://answers.unity3d.com/questions/14404/create-an-object-in-screen-space-coordinate.html

http://pixelnest.io/tutorials/unity-touch-controls/

avatar image Landern · Jan 21, 2015 at 01:38 AM 0
Share

Add a GUITexture or Sprite, render it with a little math to center it on the position x/y of the touch, when release, hide it. Use the resources you've already found for the chords on the flat surface.

avatar image meat5000 ♦ · Jan 21, 2015 at 01:46 AM 0
Share

On Android, it's in the Dev options; if its just for testing anyway.

avatar image Landern · Jan 21, 2015 at 01:51 AM 0
Share

@meat5000, there is, i think it was "Show Touches" in those options, if your phone allows it of course

avatar image z7x9r0 · Jan 21, 2015 at 01:57 AM 0
Share

@meat5000 It's for the player to see their touches. That way they can see their beginning touch point in the game. I do know about the Dev tools on Android but I need to script the visuals in Unity. I only know Javascript at the moment. I can guess how to read/rewrite the syntax from C# to Javascript.

Show more comments

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by danielmetlitski · Jan 21, 2015 at 08:37 AM

Instantiate a prefab of a Gameobject where the transform position is Input.GetTouch(0).position. This will display the image where you touched the screen.

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 z7x9r0 · Jan 21, 2015 at 12:24 PM 0
Share

Wouldn't that Instantiate the prefab in the world coordinates rather than on the screen? For instance, if my tablet is 1920 x 1080 and the touch happened at (280,500) the prefab would be made in the world at 280,500 when my character is 1x1 unit big and the camera is covering the space around (0,0) in the my level with only 16 units to 9 units big. This would Instantiate the prefab out of view and far away from the camera. And since the camera follows the character would the prefab be on screen if the camera is moving?

avatar image sniper43 · Jan 21, 2015 at 02:15 PM 1
Share

You can instatiate it then set it as a child of the UI. $$anonymous$$ake sure it's rotated properly, and that it's an UI element.

avatar image z7x9r0 · Jan 21, 2015 at 02:38 PM 0
Share

A little something I tried just now. Got the GameObject to appear where I touch it. It's doesn't Instantiate as a child of the camera/player. Looking up how to do that now. Also the GameObject can only be seen in the Scene window and not the Game window. I can see it has a Z coordinate and need to figure out how to bring it forward..

 #pragma strict
 
 var circleTouch : GameObject;
 var fTC : Vector2;
 
 function Update () {
     if(Input.touchCount == 1){ //Does finger count on screen equal 1?
         if(Input.GetTouch(0).phase == TouchPhase.Began){ //When touch on the touch screen begins.
             fTC = Input.GetTouch(0).position;
             Instantiate(circleTouch, Camera.main.ScreenToWorldPoint(fTC), Quaternion.identity);
             Debug.Log(fTC);
         }
         if(Input.GetTouch(0).phase == TouchPhase.Ended){ //When touch on the touch screen ends.
             //Destroy(circleTouch); //This gave me an error. Never used destroy before but thought I'd try it.
         }
     }
 }

Edit Fixed the camera's positioning. Changed the camera's Transform : Position from 0x0x(-10) to 0x0x0. And then changed the Clipping Planes setting which was set to it's default at 0.03, to 0. This helped fix the Z axis of the circles (touches) position in the game. Wasn't sure how to write in script a way to overwrite the camera's Z axis yet so I tried this work-around.

avatar image z7x9r0 · Jan 21, 2015 at 02:59 PM 0
Share

@sniper43 I did not know Unity 4.6 had this feature. I'm working in version 4.5.4f. I'll have to upgrade to use those features

http://unity3d.com/learn/tutorials/modules/beginner/ui

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.

Follow this Question

Answers Answers and Comments

28 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Unity buttons touchscreen woes 0 Answers

Android touch gui help!!! 2 Answers

Setting Scroll View Width GUILayout 1 Answer

The gui disappears when i let go 2 Answers

touch 3d object open gui 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges