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 SmooveB · Feb 01, 2012 at 03:53 AM · lookatflipcenterfacingquaternion.lookrotation

Make object face center of circle without flipping in 2D space.

Simple concept:

I have a sling in a 2D game.

The cup of the sling is a game object.

When pulled back, the cup of the sling should always face towards a center point, just like the cup of a real sling would when under tension.

Seems simple, but I have not been able to find a solution.


Things that did not work -

Using lookat does not work because the cup will flip halfway around the circle.

This solution:

                 var relativePos = center.transform.position - cup.transform.position;                       
                 var rotation = Quaternion.LookRotation(relativePos,cup.transform.up);                    
                 cup.transform.rotation = rotation;

                     

almost works at the edges, but introduces rotation around y and z axes anywhere near the center. (this is a 2d game, so any rotation along those axes is no good)

Clamping those axes seems to break the solution as a whole.

This solution, found in another answer:

 Vector3 oldV = targetPos-oldPos, newV = targetPos-curPos;
 Quaternion changeRot = Quaternion.LookRotation(oldV, newV);
 // the order of *'s matters, can never remember which one:
 transform.rotation = changeRot * transform.rotation;

seems to just result in wild spinning.

edit: Sorry for not being able to get the code window to look right. It is not for lack of trying.

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.

Follow this Question

Answers Answers and Comments

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Player to always face 'track' forward direction 1 Answer

2D rotation question 0 Answers

Camera rotate around sphere centre 2 Answers

Rotate Z-Axis towards center. 0 Answers

Rotate with joystick - LookAt axis flipping 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