• 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
1
Question by vontio · Aug 07, 2012 at 11:22 AM · rotate

Quaternion.Euler(new Vector3(95,0,0)).eulerAngles != new Vector(95,0,0)

output is (85.0, 180.0, 180.0),

How can I make rotation to (95,0,0) with affect rotation y and z?

Comment
Add comment · Show 1
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 Bunny83 · Aug 08, 2012 at 12:41 AM 0
Share

The point is (85, 180, 180) and (95, 0, 0) is actually the exact same rotation. Quaternions are used to prevent a gimbal lock. They doesn't store the rotation in eulerangles, however the rotation can be converted into eluer angles. Since there are multiple ways to express the same rotation you can't rely on certain euler angles.

If you want to control two axis of a rotation, do it like Scroodge said. You can combine multiple rotations into one final rotation, but use your own variable to store and manipulate the angle.

1 Reply

· Add your reply
  • Sort: 
avatar image
2
Best Answer

Answer by ScroodgeM · Aug 07, 2012 at 11:47 AM

never use eulerAngles for read data.

if you need a stable rotation in one (two, three) axis, just use local variable, for example

private float rotationX = 0f;
and change it whenever you want

void Update()
{
    ...
    rotationX += Time.deltaTime * 50f;
}
also there in Update, just apply it by

void Update()
{
    ...
    transform.rotation = Quaternion.Euler(new Vector3(rotationX, 0f, 0f));
}

forget about Quaternion.eulerAngles at all 8)

Comment
Add comment · Show 2 · 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 vontio · Aug 08, 2012 at 12:05 AM 0
Share

Hi @Scroodge,how can I rotate x in one class,and rorate y in another class concurrently without affect each other.

avatar image Bunny83 · Aug 08, 2012 at 12:44 AM 1
Share

@vontio: You can't manipulate them seperately. You should either trying to combine both rotations (maybe via callbacks or events) or alternatively use two objects and make one child of the other. That way you can rotate each child locally on just one axis. $$anonymous$$ake sure you use ".localRotation" and not ".rotation".

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

9 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Camera rotation around player while following. 6 Answers

Rotating a character smoothly 0 Answers

Change gravity point on trigger 0 Answers

make my object face the direction of movement? 1 Answer

How can i follow an object by 1-axis-rotation? 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