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 Lumbearjack · May 16, 2013 at 09:31 PM · c#androidgameobjectraycasttouch

Using raycasts to move a game object toward touch point.

I'm trying to figure out how to work touch controls out using a raycast, and for the most part, things are working. But I've run into a few troubles. I'm trying to eventually have it so that when I touch a point on the screen the game object will move from it's current position toward the touched point at a determinable speed, and then follow your finger as you slide it around the screen.

Currently, the game object located at center stage (0,0,1) will move in relation to touched points, but will not move toward the perceived touched point. I.E. I touch the bottom left corner of the screen, and the object instantly appears at 0,0,1, which is the center of screen in game units. But if I touch 50 pixels to the upper-right, the object will instantly move to the position of 50,50,1 in game units, not screen pixel position. Which is about 45 game units out of view. The game borders are at ~x:-4,4 and ~y:-9,9. Obviously I'd like for there not be a direction relation from game units to pixel location, but I'm not quite sure how to go about it.

I'm using this script attached to my orthographic Main Camera which is located at 0,0,10:

 void Update()
     {
         TapSelect();
     }
     void TapSelect()
     {
         foreach (Touch touch in Input.touches)
         {
             if (touch.phase == TouchPhase.Began)
             {
                 Ray ray = Camera.main.ScreenPointToRay(touch.position);
                 RaycastHit hit;
                 if (Physics.Raycast(ray, out hit))
                 {
                     hit.transform.SendMessage("Selected");
                 }
             }
         }
     }

And this code is within the Game Object located at 0,0,1:

 void Update()
 {
         if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
         {
             Vector3 fingerPos = Input.GetTouch(0).position;
             Vector3 pos = fingerPos;
             pos.z = 1;
             transform.position = pos;
         }
 }

I've modified them quite a bit trying to get better results, but this is how they started out. In short, I would appreciate finding out how I move an object to the position touched, as opposed to the positions x/y coordinates converted into game units. And also be able to have the object move not only on first touch, but while the finger is held down and moved. I'm pretty sure the second issue is due to using TouchPhase.Began, but I haven't tinkered with this yet.

Any help would greatly appreciated.

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

0 Replies

· Add your reply
  • Sort: 

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

13 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

Related Questions

How to detect if a raycast ray stop hitting an object 1 Answer

Unity3d Get Cube Pressed On Mobile 1 Answer

Timer Freeze Problem 1 Answer

How do you Draw a Line Using your Finger's Position on Android 3 Answers

Player using turret problem 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