- Home /
Modify circular progress bar based on a value?
Hi everyone, I am working on a progress bar that I will use in my game, I am using the one described on this example.
Well, my question is pretty straight forward:
How can I modify the alfa cutoff based on a value, lets say:
if(conditionTrue){
alfaCutoff + 150;}
right now it works based on mouse position, I also tried this:
renderer.material. SetFloat("_Cutoff", Mathf.InverseLerp(0,0,0)); //(adding random values)
But i get pretty weird results.
Any help would be appreciated
Thanks
Answer by Bunny83 · Dec 06, 2012 at 12:30 AM
You need to set the cutoff to a number between 0 and 1. Your InverseLerp will cause a division by zero since you have from and to == 0.
InverseLerp does the opposite of Lerp (which should be obvious ;)). "From" and "to" specifies an arbitrary range and "value" should lay in between. When "value" is lower then "from" it will return 0.0, if it's higher than "to" it will return 1.0 and when it's in between it will be linearily mapped bwtween 0 and 1.
Example:
Mathf.InverseLerp(20,30,22)
This will return "0.2" The range starts at 20 and ends at 30. The value (22) is in between "from" and "to".
Some more examples:
Mathf.InverseLerp(0, 1, 0.8) == 0.8
Mathf.InverseLerp(1, 2, 1.8) == 0.8
Mathf.InverseLerp(-1000, 1000, 0) == 0.5
Eric just used it to convert the x mouse position (which is in pixels in the range of 0 to screen.width) to a value between 0 and 1.
So what ever you want to display with this bar, bring it in the range of 0 to 1
Your answer
Follow this Question
Related Questions
Calculate Vector3 based on the other Vector3 0 Answers
Modify a value from another script ( no static value ) 1 Answer
transform.position related compile error fixed don't understand why ? 1 Answer
Progress Bar 2 Answers
Load bar in GameObject 2 Answers