Створіть радіальний/круговий індикатор прогресу в Unity

У цьому підручнику я покажу, як зробити кругову/радіальну панель прогресу (яку також можна використовувати як панель HP тощо) у Unity.

Sharp Coder Відеоплеєр

Тож почнемо!

Кроки

Нам знадобиться кругле зображення з прозорим фоном.

  • Імпортуйте зображення у свій проект і змініть його тип текстури на "Sprite (2D and UI)"

  • Створіть нове полотно (GameObject -> UI -> Canvas)
  • Клацніть правою кнопкою миші об’єкт Canvas -> UI -> Image
  • Призначте спрайт кола до вихідного зображення та змініть його колір на червоний
  • Змініть Тип зображення на "Filled" і Метод заливки на "Radial 360" (це покаже іншу змінну під назвою «Ступінь заливки», яка контролює, скільки зображення видно вздовж кола)

  • Скопіюйте зображення, змініть його колір на білий і тип зображення на "Simple"
  • Перемістіть копію зображення всередину першого зображення
  • Змініть розмір першого зображення (тип із заповненим зображенням) на щось більший (наприклад, ширина: 135, висота: 135)

  • Створити новий текст (клацніть правою кнопкою миші на Canvas -> UI -> Text)
  • Змініть його вирівнювання на середину-центр

  • Змініть висоту тексту на 60, щоб мати змогу вмістити текст завантаження

Нарешті, ми створимо сценарій, який застосовуватиме значення прогресу до зображення

  • Створіть новий сценарій, назвіть його "SC_CircularLoading" і вставте в нього наведений нижче код:

SC_CircularLoading.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class SC_CircularLoading : MonoBehaviour
{
    public Image loadingImage;
    public Text loadingText;
    [Range(0, 1)]
    public float loadingProgress = 0;

    // Update is called once per frame
    void Update()
    {
        loadingImage.fillAmount = loadingProgress;
        if(loadingProgress < 1)
        {
            loadingText.text = Mathf.RoundToInt(loadingProgress * 100) + "%\nLoading...";
        }
        else
        {
            loadingText.text = "Done.";
        }
    }
}
  • Прикріпіть сценарій SC_CircularLoading до будь-якого об’єкта та призначте його змінні (зображення для завантаження має бути зображенням із радіальним типом заливки, а текст для завантаження має бути текстом, який відображатиме значення прогресу)

  • Натисніть Play і перемістіть повзунок «Прогрес завантаження». Спостерігайте за поступовим заповненням завантажувального зображення:

Рекомендовані статті
Робота з системою інтерфейсу Unity
Створення простого шейдера трави в Unity
Створення інтерфейсу користувача екрану переможця в Unity
Створення меню паузи в Unity
Створення симуляторів польотів в Unity
Створення ефекту фільтра стрічки VHS в Unity
Як додати зомбі в Unity Games