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 Korzxd · Sep 21, 2015 at 03:42 PM · c#rotationtransformquaterniontweening

How to rotate a camera slowly along a tween?

So i have a camera on a tween that loops around 2 rooms, when the camera enters a room it focuses on the target i set in that room, the problem is it's not smooth at all, i've found examples using quaternion with one object or on key presses but can't understand how to do it automaticaly.

Here's the code it's not much, very simple.

 if (transform.position.z < 17.16)
         {
             transform.LookAt(target1);
 
         }
         else
         {
             transform.LookAt(target2);
         }

I'd just like to know what to add or change to give it a slow rotation speed that may stop all the juddering.

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

· Add your reply
  • Sort: 
avatar image
0

Answer by snuffysam · Sep 21, 2015 at 08:33 PM

I'd create five parameters in the script, private boolean turning, private float time, private Vector3 initial, private Vector3 final, and private Vector3 disp. Then in the start function, set turning to false and seconds to however much time you want (although depending on what function you're running the whole thing in, the time might not be frame-rate independent, so watch out).

Finally, replace transform.LookAt with this code:

 if (!turning){
    initial = transform.forward;
    final = target1.position - transform.position;
    disp = ((final.x-initial.x)/time, (final.y-initial.y)/time, (final.z-initial.z)/time);
    turning = true;
    transform.Rotate(disp);
 } else{
    transform.Rotate(disp);
    if (Mathf.Abs(transform.forward-final).x < Mathf.Abs(disp).x || Mathf.Abs(transform.forward-final).y < Mathf.Abs(disp).y || Mathf.Abs(transform.forward-final).z < Mathf.Abs(disp).z){
       transform.LookAt(target1);
    }
 }

Assuming you run this in some sort of every tick method (e.g. update), it should work.

Comment
Add comment · 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

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

31 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

Related Questions

Auto level an object 0 Answers

Flip 3D Character Rotation 180 on Y axis 1 Answer

How can I set rotation properly? 0 Answers

Weird rotation when using Slerp!!? 3 Answers

How do you rotate the player and keep them there? 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