• 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 12boulla · Jan 19, 2018 at 08:03 PM · android3dtouchswipeflick

Mobile Swipe Gesture to flick object in 3D space

Hi, I am using the following code in order to try and throw gameobjects based on swipe inputs on a touch screen. However, I am not sure how to make it easier to aim. In its current state, it works vaguely as expected, but the throws are seemingly random and I cannot get the aiming right. Basically I need it so that when you swipe on the screen, the object gets a force acted on it in 3D space accordingly (an example may be a game where you would flick a football into a goal)

 void Update () {
         if (Input.touchCount > 0)
     {
         Touch touch = Input.touches[0];
 
         switch (touch.phase)
         {
             case TouchPhase.Began:
                 startPos = touch.position;
                 break;
             case TouchPhase.Ended:
               
                 float swipeDistHorizontal = (new Vector3(touch.position.x, 0, 0) - new Vector3(startPos.x, 0, 0)).magnitude;
                     float swipeDistHorizontalActual = (new Vector3(touch.position.x, 0, 0).x - new Vector3(startPos.x, 0, 0).x);
                 float swipeDistVertical = (new Vector3(0, touch.position.y, 0) - new Vector3(0, startPos.y, 0)).magnitude;
                 if (swipeDistHorizontal > 2)
                 {
                     float swipeValue = Mathf.Sign(touch.position.x - startPos.x);
                     if (swipeValue > 0 && !isTouch)//to right swipe
                     {
                         isTouch = true;
                         //StartCoroutine(Right());
                         Debug.Log("RIGHT");
                     }
                     else if (swipeValue < 0 && !isTouch)//to left swipe
                     {
                         isTouch = true;
                         //(Left());
                             Debug.Log("LEFT");
                     }
                 }
 
                 //add swipe to up
                 if(swipeDistVertical > 2)
                 {
                     float swipeValue = Mathf.Sign(touch.position.y - startPos.y);
                     if(swipeValue > 0)
                     {
                         isTouch = true;
                             Debug.Log("UP");
                     }
                 }   
                 GameObject cheese = cheesePool.transform.GetChild(Random.Range(0, cheesePool.transform.childCount - 1)).gameObject;
                 cheese.transform.position = spawnPos;
                     cheese.AddComponent<Rigidbody>();
                     cheese.GetComponent<Rigidbody>().AddForce(new Vector3(swipeDistHorizontalActual, 0.45f * swipeDistVertical, swipeDistVertical) * force);
                     cheese.transform.SetParent(null);
                     isTouch = false;
                 break;
 //            case TouchPhase.Ended:
 //                //isSwipe = false;
 //                isTouch = false;
 //                break;
         }

The gameobjects I am throwing are the "cheese" objects which are loaded from a pool.

Any help is greatly appreciated, thanks.

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.

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

185 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 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 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 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 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 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

Bug? Need to wait about 10 seconds to get back to normal 1 Answer

Swipe control for circle (Can do swipe left/right) 2 Answers

Frame Drop on Touching or Swiping Screen 0 Answers

Android Drag By Steps 0 Answers

Diagonal swipe issues on Android 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