- Home /
Counter with a Rounded GUI bar
I made a classic GUI bar that is rounded
My problems is that it keeps on counting even when there is no collision on my trigger. I want it to count each time there is a collision detected until it reaches a maximum.
Here is my script:
> using UnityEngine;
> using System.Collections;
>
> public class eggcollider : MonoBehaviour {
>
>
> public int theScore = 0;
>
> void Update ()
> {
> renderer.material.SetFloat("_Cutoff",
> Mathf.InverseLerp(100, 0,
> theScore++));
> }
>
>
> void OnTriggerEnter(Collider theCollision)
> {
> GameObject collisionGO = theCollision.gameObject;
>
> if(theCollision.name == "Stone") {
> theScore++;
> }
> }
>
>
> void OnGUI()
> {
> GUILayout.Label("Score: " + theScore);
> }
> }
Also my a noob when it comes to c#. Please help a fellow game designer.
Answer by aldonaletto · Feb 12, 2013 at 02:50 PM
Here's the cause of your problem:
renderer.material.SetFloat("_Cutoff", Mathf.InverseLerp(100, 0, theScore++));
You're incrementing theScore in Update! Remove ++ to solve the problem:
renderer.material.SetFloat("_Cutoff", Mathf.InverseLerp(100, 0, theScore));
I have done it and then what happens now is that the HUD aka the GUI doesn't even move. thx for the help anyway. All it must do is when the collider hits a trigger the HUD must move 1 up on the render HUD. I really don't get this inverselerp thing on how it works.
Sorry, Stupid me.. Your code is perfect, I got my problem solved.
InverseLerp(a, b, c) returns a number in the range 0..1 proportional to the position of c in the interval a..b : if c == a, returns 0; if c == b, returns 1; if c in the middle of a and b, returns 0.5, and so on.
The idea is to convert the original range 0..100 to the suitable alpha value, which is in the range 0..1: 0 means totally opaque (alpha = 1), 100 means totally transparent (alpha = 0).
Your answer
Follow this Question
Related Questions
Problems with OnTriggerEnter 1 Answer
GUI flashing on hover 0 Answers
Converting Bounds.size to GUI? 0 Answers
OnMouseExit doesn't work through gui 1 Answer
show different textures when trigged entered thrice 2 Answers