- Home /
Get fill amount up and down in a partern
Hi, im having a problem with getting up and down the fill amount of the image in a pattern like if its an equalizer. Im trying to use less lines but i guess im finding it hard to solve this one, the point is this would represent the hp of the charcater with the colour of the bars ass well as the height, they have to up and down in real time like if they were animated simulating an equalizer effect, of course the color changes as the hp drops down, same with the bars. But im having a problem comapring the height and also substracting an amount till it goes to 0 in real time.
using UnityEngine;
using System.Collections;
using System;
using UnityEngine.UI;
public class Rotate : MonoBehaviour {
//bars
public Image b1, b2, b3, b4, b5, b6, b7, b8, b9;
public Image[] myBarritas;
//just temporal hitpoints for test
public int hitpoints;
//height checker
public float h1, h2, h3, h4, h5, h6, h7, h8, h9;
//max heigh for orange
public float height2 = 0.5f;
//just the min value the bars would reach to reset
public float zero = 0.0f;
//max heigh for green
public float height = 1.0f;
//max height for red
public float height3 = 0.2f;
public float change;
void Start ()
{
}
// Update is called once per frame
void Update () {
//Rotating the empty object containing all the bars
transform.Rotate(0, 20 * Time.deltaTime, 0);
//calls the fucntion than does all the dirty work
ColoursFill ();
}
void JustColorBaby (Color color)
{
foreach (Image i in myBarritas)
{
i.color = color;
}
}
void JustFillBaby (float change)
{
change = hitpoints;
foreach (Image i in myBarritas)
{
i.fillAmount += change;
}
}
void EmptyBaby (float change)
{
foreach (Image i in myBarritas)
{
change = i.fillAmount;
i.fillAmount -= change;
}
}
//puts all together
void ColoursFill ()
{
//checks players hp to set the color (max hp would be 120)
if (hitpoints >= 71 && hitpoints <= 120)
{
JustColorBaby (color: Color.green);
JustFillBaby (change: 1f);
//checks the height to get 1 to empty them
bool exists = Array.IndexOf(myBarritas, change) == 1f;
if (exists == true)
{
print ("*********************");
//EmptyingG ();
EmptyBaby (change: 0f);
}
//if empty refills
bool exists = Array.IndexOf(myBarritas, change) == .0f)
if (exist == false)
{
JustFillBaby (change: hitpoints);
}
}
}
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220611233814im_/https://answers.unity.com/themes/thub/images/avi.jpg)