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 /
avatar image
0
Question by MAVRIKO · Aug 29, 2017 at 11:07 PM · c#rotationgameobjecttransformquaternion

Auto level an object

Hi I'm making a fish game and I'm trying to have the fish be able to self right its self over the z axis. Currently my problem is it will lock the z rotation at 0 and it can't be altered without returning to 0 instantly. My goal is to have the fish be able to self right over the z axis over time after being altered. It must also keep its rotation over the x and y axis.

Blockquote

     private void Rotate()
     {
         //calculate rotation
         float rotateAroundY = yawLookInput * rotationSpeed * Time.deltaTime;
         float rotateAroundX = -pitchLookInput * rotationSpeed * Time.deltaTime;
         float rotateAroundZ = Mathf.LerpAngle(transform.rotation.z, 0, .5f);
         //rotate
         Vector3 rot = transform.eulerAngles;
         rot = new Vector3(rotateAroundX + transform.eulerAngles.x, rotateAroundY + transform.eulerAngles.y, rotateAroundZ);
         transform.eulerAngles = rot;
         //transform.Rotate(rotateAroundX, rotateAroundY, rotateAroundZ);
     }




Comment
Add comment · Show 3
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 MaxGuernseyIII · Aug 29, 2017 at 11:28 PM 0
Share

Could we get a sample of the script you are using?

avatar image MAVRIKO MaxGuernseyIII · Aug 29, 2017 at 11:34 PM 0
Share

Updated :)

avatar image MaxGuernseyIII · Aug 30, 2017 at 01:54 AM 0
Share

I plugged that into this behavior, which let me test it using the inspector.

 using UnityEngine;
 
 public class RotateIt : $$anonymous$$onoBehaviour
 {
   public float yawLookInput;
   public float rotationSpeed;
   public float pitchLookInput;
 
   private void Update()
   {
     Rotate();
   }
 
   private void Rotate()
   {
     //calculate rotation
     float rotateAroundY = yawLookInput * rotationSpeed * Time.deltaTime;
     float rotateAroundX = -pitchLookInput * rotationSpeed * Time.deltaTime;
     float rotateAroundZ = $$anonymous$$athf.LerpAngle(transform.rotation.z, 0, .5f);
     //rotate
     Vector3 rot = transform.eulerAngles;
     //transform.rotation = new Quaternion(rotateAroundX + transform.eulerAngles.x, rotateAroundY + transform.eulerAngles.y, rotateAroundZ, 0);
     transform.Rotate(rotateAroundX, rotateAroundY, rotateAroundZ);
   }
 }

Both with your original version and with my slight edit, I didn't have the problem of the Z rotation being locked. What did happen was that the Z axis didn't change if I only had the pitch control set to something but not the yaw. Likewise, only setting the yaw caused it to spin about the Y axis unless there was already some existing rotation.

In the commented out section, I tried just setting the rotation to the calculated values. In this case, still, the rotation would occur but the axes affected were transposed.

I think we're going to need a better statement of what you want want and what you're not getting. $$anonymous$$aybe try the Given-When-Then structure for stating what you want - that is: 1. Explain in exact detail an example starting state of the system (given). 2. Explain in exact detail the thing that causes Rotate() to be invoked (when). 3. Explain in exact detail what the final state of the system you want is after Rotate() was invoked (then).

If there are any details in the "then" part that cannot be traced back to the "given" and/or "when" part, then the explanation of what you want isn't precise enough. It's got to be so precise that you could execute it as a test to help you and help us help you.

Once you've done that, you can explain what's actually happening in contrast with your expectation.

As a side note, I would point out that the docs for eulerAngles says it's meant to be read and won't work if you push anything past 360.

Without more details and based on what little information I can glean, I would say you might consider a different strategy: pick a target rotation, and create forces that push the fish back toward your ideal rotation and make the forces stronger the further from your target level they are. Your input system can then push rotation however it likes and your balance system can just push back as hard as it needs to for the game to work the way you want.

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

430 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

Related Questions

GameObject not looking at me.. 1 Answer

Flip 3D Character Rotation 180 on Y axis 1 Answer

How to rotate a camera slowly along a tween? 1 Answer

How can I set rotation properly? 0 Answers

Weird rotation when using Slerp!!? 3 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