Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 /
avatar image
0
Question by Kamiyama · Dec 24, 2013 at 08:26 PM · vector3directionlocal

Local FPS Gravity Changing Lerp

Right now I'm working on a small game where the player can change the direction of gravity. When they do this I lerp from transform.up to vector3.right * -1. This should work locally. However whenever I face a different direction, I am snapped back to looking forward and then I am lerped from this position. What I need is for lerp to respect my current orientation and transform my .up from into my local right. Rather than snapping me back to the global right and then Lerping me.

 transform.up = Vector3.Lerp(transform.up,targetRight,Time.fixedDeltaTime* damping);

With targetRight = Vector3.right* -1 and damping is just a float(6) Does anyone know how to accomplish this? Thanks for reading.

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 robertbu · Dec 24, 2013 at 10:47 PM 0
Share

An interesting question, but I cannot completely visualize the problem. I suspect the issue as to do with the way Quaternions work, and you need to rework your code to use Quaternion.LookRotation(), or Quaternion.AngleAxis() to do your rotation.

The rest of the script and/or a link to a sample project would be a big help figuring this one out.

avatar image iwaldrop · Dec 24, 2013 at 11:01 PM 0
Share

Vector3.right will always point along the world's right. Try using transform.right. Also, you can just negate a Vector with the negative sign (-) ins$$anonymous$$d of multiplying by -1. So (your code looks like US),

 var initialUp : Vector3 = trasform.up;
 var initialLeft : Vector3 = -trasform.right;
 var lerpValue : float = 0;

 while (lerpValue <= 1)
 {
     lerpValue += Time.fixedDeltaTime * damping;
     transform.up = Vector3.Lerp(initialUp, initialLeft, lerpValue);
     yield return;
 }
avatar image Kamiyama · Dec 26, 2013 at 01:03 AM 0
Share

Thanks for the fast reply. I'll try this out and report back soon.

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

19 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

Related Questions

rotate vector around local axis 2 Answers

Raycast between TransformDirection and Vector3.Forward? 1 Answer

Find direction from current direction rotated by angle 1 Answer

Local Direction of Vector3 1 Answer

Restrict Direction of rotation in Realtime. 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