• 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 Fingerlights · Apr 09, 2016 at 12:04 AM · mathf.clamp

MathF.Clamp Only Limiting how low my number can go, but not how high, help?

Hey! I'm building a Stamina Meter, that slowly decreases as the Stamina is depleted, and increases as the Stamina increases. I need this number to cap @ the values of "0" and "10".

Using MathF.Clamp, I have managed to get the numbers to stop depleting @ 0, (after many iterations to get the system to work) but for some reason, it won't stop it rising above 10.

I'll post some of my code snippets below - If anyone could point out what I've done wrong!

Mathf Clamp & initial value of sprint

 void Start 
 {
 sprintCountdown = Mathf.Clamp(10f, 0f, 10f);
 }

increasing & decreasing the value

 if (sprint == true)
         {
             if (sprintCountdown > 0)
             {
                 speed = 30;
                 sprintCountdown = decreaseSprint;
                 Debug.Log(sprintCountdown.ToString());
             }
             else
             {    
                 speed = 10;
             }
         }
         else
         {   
             speed = 10;
             sprintCountdown = increaseSprint;
             Debug.Log(sprintCountdown.ToString());
         }

"Sprint" is Equals true, if Left Shift is being pressed.

To clarify, the meter works, the value decreases when shift is held, at the appropriate rate until it hits 0, and increases when shift isn't held - but doesn't stop at 10. can someone please help me?

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
Best Answer

Answer by Fingerlights · Apr 09, 2016 at 12:27 AM

Solved it myself ^_^.

Answer for anyone looking in the future:

Removed the "sprintCountdown = Mathf.Clamp(10f, 0f, 10f);" in "Void Start

and changed the other code to

  decreaseSprint = (sprintCountdown - (1f * Time.deltaTime));
         increaseSprint = (sprintCountdown + (1f * Time.deltaTime));
 
         if (sprint == true)
         {
             if (sprintCountdown > 0)
             {
                 speed = 30;
                 sprintCountdown = Mathf.Clamp(decreaseSprint, 0f, 10f);
                 Debug.Log(sprintCountdown.ToString());
             }
             else
             {    
                 speed = 10;
             }
         }
         else
         {   
             speed = 10;
             sprintCountdown = Mathf.Clamp(increaseSprint, 0f, 10f);
             Debug.Log(sprintCountdown.ToString());
         }

Hope this helps someone.

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.

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

54 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

Related Questions

How do I clamp the y rotation of roty 1 Answer

Raycast instantiation only sometimes working. 1 Answer

Is there any way to reduce this bit of Mathf.Clamp code for spawn positions down to one line? 1 Answer

why is my player sticking to mathf.clamp? 2 Answers

How to Properly Mathf.Clamp an X Rotation for Camera? 0 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