• 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 /
  • Help Room /
avatar image
0
Question by CrispyArrow · Nov 11, 2015 at 01:33 PM · rotationdrag

Rotate rigidbody relative to addforce direction?

I have a dragger script that allows me to instantiate projectiles and give them force, relative to the opposite direction of where you drag (kind of like a slingshot). when you release the drag, it instantiates a projectile, and adds force to it's rigidbody. So far this works with 0 problems. But there's 1 minor issue. when the object is instantiated, it does not rotate to face the direction of the movement. I want the object to firmly face forward while the force is being applied to it. Here's an image as an example: alt text

As you can see from the example, my object does not change its direction upon being instantiated At the moment this is because in the dragger script I only give it "transform.rotation" upon being instantiated. Here's part of the dragger script: (its over 250 lines so obviously i wont put everything, if you need more code aside from the function that handles spawning the projectile, let me know)

 void  OnMouseUp (){
         mouseDragging = false;    //makes the script know that the character is not dragging anymore.
         int snapD = -1; // the snap direction opposite of your drag direction.
 
 
 
         if (canSpear) {
             
             if (overrideVelocity) {
                 // cancel existing velocity
                 GetComponent<Rigidbody> ().AddForce (-GetComponent<Rigidbody> ().velocity, forceTypeToApply);
                 
             }
             // add new force
             if (snapDirection == SnapDir.away)
                 snapD = -1;
             // if snapdirection is "away" set the force to apply in the opposite direction
             //    Vector3 arrowPos = Camera.main.WorldToScreenPoint(transform.position);
             Vector3 arrowDir = Input.mousePosition;
             //    float angle = Mathf.Atan2(arrowDir.x, arrowDir.x) * Mathf.Rad2Deg;
             if (hasArrows.spearAmount > 0){
                 rotator.y = 90;
                 GameObject instantiateObj = (GameObject)Instantiate (spawnSpear, this.transform.position, rotator);
                 instantiateObj.GetComponent<Rigidbody> ().AddForce (snapD * forceVector, forceTypeToApply);
                 hasArrows.spearAmount -= 1;
             }
             dragZone.GetComponent<Renderer> ().enabled = false;
         }
 }
example-unityanswers.png (24.2 kB)
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

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Touch to move and drag to rotate object 2 Answers

Drag - Rotate 0 Answers

OnMouseDrag() stopped working after few clicks 0 Answers

Rotate and Drag Problem 1 Answer

Drag and rotate object similarly to Monument Valley rotation mechanics? 2 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