• 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
Question by br.glen23 · Sep 24, 2013 at 09:40 PM · rotationiostouchdragdragging

Rotating a gameobject via dragging finger

Hello, I'm quite new to Unity, and I'm making a 3d puzzle game for iOS. Right now I'm creating a menu gui where a cube in the center of the camera is rotating(slowly on it's own), and you simply drag your finger left or right to rotate it more in either direction. The gui elements will be on each side of the cube, and thats why it has to rotate.

It should be pretty simple, I want it to:

  • start off by slowly rotating right

  • if dragging finger left or right change direction and increase rotation speed depending on how fast you drag your finger

  • slowly decrease in speed back to normal

I know how to rotate a cube, but I don't know how to detect whether a finger is dragging to the right or left, and how to change the rotation speed based off of that.

Thank you in advance!

Comment

People who like this

0 Show 0
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

· Add your reply
  • Sort: 
avatar image

Answer by RyanZimmerman87 · Sep 24, 2013 at 09:57 PM

I've never tried to do t$$anonymous$$s myself, but I can take a guess at it. Maybe try somet$$anonymous$$ng like t$$anonymous$$s:

 Vector2 firstScreenPosition;
 
 Vector2 secondScreenPosition;
 
 bool fingerDownBool;
 
 void Start()
 {
 fingerDownBool = false;
 }
 
 void Update()
 {
 
 if (Input.GetButtonDown ("Fire1"))
         {
 if (fingerDownBool == false)
 {
 fingerDownBool = true;
 
 //t$$anonymous$$s part I'm guessing on if it works for your specific example since haven't tried it
 firstScreenPosition = mainCam.WorldToScreenPoint(Input.mousePosition);
 }

 

    //probably want a better way to detect if finger is up t$$anonymous$$s might require 2 clicks to start moving

 //could try GetButtonUp() for example

   

  else if (fingerDownBool == true)
     {

 fingerDownBool = false;
 }
 }
 
 
 if (fingerDownBool == true)
 {
 secondScreenPosition = mainCam.WorldToScreenPoint(Input.mousePosition);
 
 if (secondScreenPosition.x >= firstScreenPosition.x)
 {
 float newScreenPosition = secondScreenPosition.x - firstScreenPosition.x;
 
 //probably want to use a Slerp or some other function for smooth rotation but you get the idea
 transform.RotateAround (transform.position, transform.up, newScreenPosition);
 }
 
 //etc
 else if (secondScreenPosition.x <= firstScreenPosition.x)
 {
 }
 
 //grab current position for next Update()comparison
 
 firstScreenPosition = mainCam.WorldToScreenPoint(Input.mousePosition);
 
 }

Hopefully that get's you started that is a complete guess since I never tried it, but maybe get you on the right track I hope.

Comment

People who like this

0 Show 0 · 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

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

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

17 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

Related Questions

Multiple Touch Drag iOS 0 Answers

EventSystem IDragHandler not working on iOS 1 Answer

How to rotate an object using touch controls 3 Answers

Dragging UI Image by touch 3 Answers

Trouble dragging object in Z axis, 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