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 /
  • Help Room /
avatar image
0
Question by ddooms · Jan 04, 2021 at 12:58 AM · lerprecttransforminterpolation

Need help debugging speed difference in different UI elements

Heyo! Coming here after a couple hours scratching my head at this. I'm using a custom lerp function that I created for lerping between two UI elements. It's actually not completely linear, as I'm trying to do a distance lerp that also takes into account the scale of the object. Here, I'm trying to get visualTab (a rect) to place itself at the location of the current button and also match its scale over time.

 foreach (RectTransform rt in btnRects) // loop through my buttons
         {
             if (rt.gameObject == currentButton && (rt.sizeDelta != visualTab.sizeDelta || rt.position != visualTab.position)) // grab the current button, and check that it isn't already where the visual tab is at
             {
                 
                 Vector2 scaleDiff = rt.sizeDelta - visualTab.sizeDelta; // difference between the scale of the two objects
                 visualTab.sizeDelta += scaleDiff; // scale along that vector

                 Vector3 dir = rt.position - visualTab.position; // get the direction of the object from the visual tab
                 if (dir.sqrMagnitude < 100) visualTab.position = rt.position; // under a threshold, place the object at the visualtab's location
                 else
                 {
                     visualTab.position += dir.normalized * .8f * Time.fixedDeltaTime * Mathf.Clamp((dir.sqrMagnitude * .005f), 50, 300); // clamped between 50 and 300, move toward the object using the square magnitude of the direction, causing a lerp-like functionality that slows down when closer, and speeds up when further.
                 }
 
             }
         }

This is all well and good on my main UI tab interface. However, on a similar tab interface that is 50% smaller in horizontal scale, the speeds are completely different. As far as I can tell, the scale of my interface shouldn't interfere with this. The difference in scale for the two visualTabs is 50 points, and on a 1000+ width interface surely that is not the cause of this discrepancy. Hopefully someone can provide some insight!

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

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

155 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

Related Questions

interpolating to a non fixed position 0 Answers

Interpolated movement in a circle 1 Answer

Help with recttransform lerp , lags on mobile not on pc. 1 Answer

What exactly does Mathf.InverseLerp() do? 4 Answers

Smooth camera to target Y-height 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