Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
  • Help Room /
This question was closed Oct 18, 2017 at 11:26 PM by BorisOZ for the following reason:

The question is answered, right answer was accepted

avatar image
0
Question by BorisOZ · Oct 18, 2017 at 09:21 PM · c#2drotation

Make object rotate to certain direction

I am trying to create some code that makes an attacking hitbox face the direction the player is walking. Currently getting the direction to face towards works fine, but actually changing the rotation of the object isn't working. I would like the object to rotate instantly. This is the code I have so far:

     void Update () {
 
         verticalMovement = Input.GetAxisRaw ("Vertical");
         horizontalMovement = Input.GetAxisRaw ("Horizontal");
 
         if (verticalMovement == 0 && horizontalMovement == 0) {
 //            Debug.Log ("Idle");
             zRotation = new Quaternion(0, 0, 180, 0);
             transform.rotation = zRotation;
         }
         else if (verticalMovement == 1 && horizontalMovement == 0) {
 //            Debug.Log ("Up");
             zRotation = new Quaternion(0, 0, 0, 0);
             transform.rotation = zRotation;
         }
         else if (verticalMovement == 1 && horizontalMovement == -1) {
 //            Debug.Log ("UpLeft");
             zRotation = new Quaternion(0, 0, 45, 0);
             transform.rotation = zRotation;
         }
         else if (verticalMovement == 0 && horizontalMovement == -1) {
 //            Debug.Log ("Left");
             zRotation = new Quaternion(0, 0, 90, 0);
             transform.rotation = zRotation;
         }
         else if (verticalMovement == -1 && horizontalMovement == -1) {
 //            Debug.Log ("DownLeft");
             zRotation = new Quaternion(0, 0, 135, 0);
             transform.rotation = zRotation;
         }
         else if (verticalMovement == -1 && horizontalMovement == 0) {
 //            Debug.Log ("Down");
             zRotation = new Quaternion(0, 0, 180, 0);
             transform.rotation = zRotation;
         }
         else if (verticalMovement == -1 && horizontalMovement == 1) {
 //            Debug.Log ("DownRight");
             zRotation = new Quaternion(0, 0, 225, 0);
             transform.rotation = zRotation;
         }
         else if (verticalMovement == 0 && horizontalMovement == 1) {
 //            Debug.Log ("Right");
             zRotation = new Quaternion(0, 0, 270, 0);
             transform.rotation = zRotation;
         }
         else if (verticalMovement == 1 && horizontalMovement == 1) {
 //            Debug.Log ("UpRight");
             zRotation = new Quaternion(0, 0, 315, 0);
             transform.rotation = zRotation;
         }
     }

The rotation automatically jumps to -180 unless I am facing upwards. I am going to move it out of the update method soon and into its own method. Thanks for the help.

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

1 Reply

  • Sort: 
avatar image
1

Answer by MacDx · Oct 18, 2017 at 09:40 PM

Hi @BorisOZ !

The problem in the code is that it is treating Quaternions as if they were Euler Angles, but they are not the same thing. Every time you do:

 zRotation = new Quaternion(0,0, someZValue, 0); 

You are not going to get the z rotation you expect because the values in a quaternion do not directly represent an euler rotation. Quaternions store rotation in a different way, hence the fourth value, they are a mathematical concept that uses complex numbers so they aren't easy to understand at first sight (If I'm honest I don't completely understand them either). If you want to read more about them you can do so here: https://docs.unity3d.com/Manual/QuaternionAndEulerRotationsInUnity.html

The solution to your problem is to replace the new Quaternion(0,0, someValue,0) part of the code with the static method Quaternion.Euler(0,0, someZValue) since that will take the euler angle values you provide and return a corresponding quaternion that the rotation property of your object can use. Like this:

 zRotation =  Quaternion.Euler(0, 0, someZValue);

You can read about the Quaternion.Euler method here: https://docs.unity3d.com/ScriptReference/Quaternion.Euler.html

Hope this helps!

Comment
Add comment · Show 1 · 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 BorisOZ · Oct 18, 2017 at 11:25 PM 0
Share

Thank you, my script works perfectly now :D

Follow this Question

Answers Answers and Comments

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

2D Sprite issue when rotating towards mouse click location. 2 Answers

He wants to write a script on a page change gait from right to left or vice versa 0 Answers

Falling blocks skip animation while upside down 1 Answer

How can i make vertical and horizontal floats not return to 0 1 Answer

2D turn towards an object with dampening (C#) 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