Skapa en radiell/cirkulär förloppsindikator i Unity

I den här handledningen kommer jag att visa hur man gör en cirkulär/radiell förloppsindikator (som också kan användas som en HP-stapel, etc.) i Unity.

Sharp Coder Videospelare

Så låt oss börja!

Steg

Vi kommer att behöva en cirkulär bild med en transparent bakgrund.

  • Importera bilden till ditt projekt och ändra dess texturtyp till "Sprite (2D and UI)"

  • Skapa en ny Canvas (GameObject -> UI -> Canvas)
  • Högerklicka på Canvas-objektet -> UI -> Bild
  • Tilldela en cirkelsprite till källbilden och ändra dess färg till röd
  • Ändra bildtyp till "Filled" och fyllningsmetod till "Radial 360" (Detta kommer att visa en annan variabel som heter Fyllningsmängd som styr hur mycket av bilden som är synlig längs cirkeln)

  • Duplicera bilden, ändra dess färg till vit och bildtyp till "Simple"
  • Flytta den dubblerade bilden in i den första bilden
  • Ändra den första bildstorleken (den med typen Fylld bild) till något större (ex. bredd: 135 höjd: 135)

  • Skapa ny text (högerklicka på Canvas -> UI -> Text)
  • Ändra dess justering till mitten

  • Ändra texthöjden till 60 för att kunna passa inläsningstexten

Slutligen kommer vi att skapa ett skript som kommer att tillämpa förloppsvärdet på bilden

  • Skapa ett nytt skript, kalla det "SC_CircularLoading" och klistra in koden nedan i det:

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.";
        }
    }
}
  • Bifoga SC_CircularLoading-skriptet till valfritt objekt och tilldela dess variabler (Laddar bild ska vara bilden med radiell fyllningstyp och Loading Text ska vara en text som visar förloppsvärdet)

  • Tryck på Play och flytta reglaget för Loading Progress. Observera att den laddade bilden fylls gradvis: