Индикатор выполнения Unity3d

Я занимаюсь разработкой игры с использованием Unity3D, и мне нужна помощь, чтобы сделать шкалу времени выполнения такой, чтобы при сборе определенных предметов добавлялось время и, таким образом, игра продолжалась.

2 ответа

Решение

Создайте изображение пользовательского интерфейса типа Filled. Используйте горизонтальную или вертикальную заливку в зависимости от вашего индикатора выполнения. Затем изнутри скрипта вы можете манипулировать значением изображения. Я приведу очень простой пример C#. В остальном вы можете просто использовать Google и прочитать API скриптов Unity.

public class Example: MonoBehaviour {

    public Image progress;

    // Update is called once per frame
    void Update () 
    {
            progress.fillAmount -=  Time.deltaTime;
    }
}

Вы могли бы использовать слайдер en slider.setvalue,

Пример:

//to use this add first a slider to your canvas in the editor.
public GameObject sliderObject; //attachs this to the slider gameobject in  the editor or use Gameobject.Find
Slider slider = sliderObject.GetComponent<Slider>();
float time;
float maxtime; //insert your maxium time

void start(){
    slider.maxValue = maxtime;
}

void update()
{
    time += Time.deltaTime;
    if (time < maxtime)
    {
        slider.value = time;
    }
    else
    {
        Destroy(sliderObject);
        //time is over, add here what you want to happen next
    }
}
Другие вопросы по тегам