Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
This question was closed Oct 09, 2015 at 09:56 PM by Ashky for the following reason:

The question is answered, right answer was accepted

avatar image
1
Question by Ashky · Oct 03, 2015 at 11:54 AM · raycasttouchraycasthittouchphase

Casting a ray at touch position

Hello Unity Community!

I am trying to cast a ray in depth, to check if an object was tapped or not. I'm using this code here:

     private void CheckTap(){
         if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began){
             Vector3 a = new Vector3(Input.GetTouch(0).deltaPosition.x,Input.GetTouch(0).deltaPosition.y,-1.0f);
             RaycastHit h;
             if(Physics.Raycast(a,Vector3.forward,out h,10.0f,lmask)){
                 Debug.Log(a);
                 if(h.transform.gameObject.tag=="Square") {
                     h.transform.gameObject.GetComponent<script_SquareHub>().OnHit();
                 }
             }
         }
     }

However, the ray is cast only at (0,0,-1), all the time. Why is this happening, why is my ray origin always at 0,0,-1 ? This particular code works fine if the object is around x,y~0.

Thanks for your time!

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

1 Reply

  • Sort: 
avatar image
5
Best Answer

Answer by fffMalzbier · Oct 03, 2015 at 12:50 PM

The first example of thedocumentation page is not what you are searching for , use the third one

 using UnityEngine;
 using System.Collections;
 
 public class ExampleClass : MonoBehaviour {
     public GameObject particle;
     void Update() {
        for (var i = 0; i < Input.touchCount; ++i) {
             if (Input.GetTouch(i).phase == TouchPhase.Began) {
                 
                 // Construct a ray from the current touch coordinates
                 Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(i).position);
                 // Create a particle if hit
                 if (Physics.Raycast(ray))
                     Instantiate(particle, transform.position, transform.rotation);                
             }
         }
     }
 }


If you like to have the Touch position you have to use Input.GetTouch(i).position instad of Input.GetTouch(i).deltaPosition

Comment
Add comment · Show 1 · 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 Ashky · Oct 09, 2015 at 09:56 PM 0
Share

Yes, this works perfectly. Sorry, I got caught up in coding and forgot to reply and accept answer.

Follow this Question

Answers Answers and Comments

32 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 avatar image avatar image avatar image avatar image

Related Questions

raycast hit add force problem, help needed please 1 Answer

Multiple hit detection with Raycasting? 2 Answers

Touch collision detection with a sprite 0 Answers

Menu issues - selecting [BACK] closes app 1 Answer

Limit the position of the object, but still keep following the touch? How to use ClampMagnitude properly? 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