• 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 oliver-jones · Apr 17, 2013 at 05:36 PM · rotateslerpanimatejitter

Why Is This Happening: Slerp Rotation Issue

Hello,

I have a trigger collider in my scene, when the player walks through it, it rotates the player 90/-90 degrees on the Y axis. Only problem is, is that it doesn't do that - it jitters at around 45 degrees (as if its stuck between 90 and -90).

 var controller : GameObject;
 var direction : String = 'left';
 
 private var inTurn : boolean = false;
 private var NewTurn = Quaternion.Euler (0, 0, 0);
 
 
 function Update () {
 
     controller.transform.localRotation = Quaternion.Slerp(controller.transform.localRotation, NewTurn, Time.deltaTime * 6);
 }
 
 
 function OnTriggerEnter (object : Collider) {
 
     if(object.transform.name == 'Player'){
 
         if(direction == "left"){
             NewTurn = Quaternion.Euler (0, -90, 0);
         }
 
         else if(direction == "right"){
             NewTurn = Quaternion.Euler (0, 90, 0);
         }
 
     }
 
 }


Now, this works fine if I only have ONE trigger game object within the scene. But if I have more, then it jitters - which is weird because the other triggers are not even being triggered, they're on the other side of the map.

All I want to do, is animate the player rotating -90 / 90 degrees on the Y axis when it walks into the trigger object.

Comment
Add comment · Show 7
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 whydoidoit · Apr 17, 2013 at 05:57 PM 0
Share

more than one thing affecting the rotation would be my guess... Something else sets it and then this code is fighting to change it but keeps finding it changed back again.

avatar image oliver-jones · Apr 17, 2013 at 06:01 PM 0
Share

Right, I've deleted every trigger object, except one - and it works fine. As soon as I duplicate a new one, and move it out of range, it starts jittering, as if its trying to counteract?? So confused, that trigger isnt even being triggered!

avatar image oliver-jones · Apr 17, 2013 at 06:04 PM 0
Share

I'm too tired - It's clearly the Update Function counteracting!

avatar image whydoidoit · Apr 17, 2013 at 06:05 PM 0
Share

Ah yes - that would do it ;)

avatar image oliver-jones · Apr 17, 2013 at 06:08 PM 0
Share

How would I get it so it just smoothly rotates the player to a given angle?

avatar image whydoidoit · Apr 17, 2013 at 06:17 PM 0
Share

Write a script called TargetRotation and add it to the player.

TargetRotation.cs

    public Quaternion targetRotation;
    public float smoothing = 6;

    void Update()
    {
          transform.localRotation = Quaternion.Slerp(transform.localRotation, targetRotation, Time.deltaTime * smoothing;
    }

Then use:

      controller.GetComponent<TargetRotation>().targetRotation = whatever;

Rather than directly accessing the actual rotation on the transform.

avatar image oliver-jones · Apr 18, 2013 at 10:25 PM 0
Share

Thanks $$anonymous$$ike, could you do me a favour and post this in the answers section so I can mark it answered? Thanks again

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

12 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

Related Questions

How to smoothly rotate an object on only two axes? 2 Answers

Animate GUI Texture 2 Answers

Quaternion.Slerp question, rotating back to original 1 Answer

This can't be impossible or? Rotate (flip) smoothly from one point to endpoint on mouseclick. 3 Answers

Doesn't Add Rotation Over 180 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