Индикатор выполнения 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
}
}