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 FSanders · Jun 24, 2015 at 10:58 AM · c#android2dtouch

Placing a Rect and detecting a Touch/Tap

Hi guys, I'm in the progress of creating my first 2D Game.

Since I'm both new to Unity and Android development I have some issues with Touch detection.

When I create a Rect with a height of 50px and a width of 100px, it seems as if the Rect is only registering Touch on the leftmost ~10px or so.

Here is my example code:

 using UnityEngine;
 using System.Collections;

 public class StartUpScript : MonoBehaviour {
 Rect buttonPLAY = new Rect(80, 340, 100, 50);
 
 // Use this for initialization
     void Start () {}
 
     // Update is called once per frame
     void Update () {
         if (Input.touchCount > 0) {
                 if (buttonPLAY.Contains(Input.GetTouch(0).position)) {
                 Application.LoadLevel("GameScreen");
                 }
                 
         }
 }


Also when it works, it feels kinda weird. As if he would fire events more than once or only if you press a certain amount of time. Is there another way to detect a single TAP anywhere on the specified Rect? As I understand it, "Update" is called once per frame. Might this be the problem?

Thanks for the help :)

Comment
Add comment · Show 2
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 hexagonius · Jun 25, 2015 at 11:57 AM 1
Share

Can't help you with why the area should be smaller than it is.

For the touch though, it's indeed triggered every frame because you only check if touchCount > 0, which is the case as long as the finger is on screen.

Check

 if (Input.GetTouch(0).phase == TouchPhase.Began){
 ...
 }
avatar image FSanders · Jun 25, 2015 at 10:59 PM 0
Share

Thanks mate! That works :)

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Clint.Carpenter · Jun 26, 2015 at 02:11 AM

It might be related to the coordinates of the shape and the touch. Try this:

 if (buttonPLAY.Contains(
     Camera.main.ScreenToWorldPoint(
         Input.GetTouch(0).position)) {
 ...
 }
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 hexagonius · Jun 26, 2015 at 07:26 AM 0
Share

I don't think that is correct. in the docs the example uses Input.mousePosition, which is in pixel coordonates. touch.position is too.

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

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Why does my app function correctly in Unity Remote but not compiled as an app? 0 Answers

how use specific for mobile button when we have 3 ? 1 Answer

Script for jump when screen is touched (C#) 1 Answer

Distribute terrain in zones 3 Answers

follow touch input whist falling 0 Answers


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