Lag en radial/sirkulær fremdriftslinje i Unity

I denne opplæringen vil jeg vise hvordan du lager en sirkulær/radial fremdriftslinje (som også kan brukes som en HP-linje osv.) i Unity.

Sharp Coder Videospiller

Så la oss begynne!

Trinn

Vi trenger et sirkulært bilde med en gjennomsiktig bakgrunn.

  • Importer bildet til prosjektet ditt og endre dets teksturtype til "Sprite (2D and UI)"

  • Opprett et nytt lerret (GameObject -> UI -> Canvas)
  • Høyreklikk på Canvas-objektet -> UI -> Bilde
  • Tilordne en sirkelsprite til kildebildet og endre fargen til rød
  • Endre bildetype til "Filled" og fyllmetode til "Radial 360" (Dette vil vise en annen variabel kalt Fyllmengde som kontrollerer hvor mye av bildet som er synlig langs sirkelen)

  • Dupliser bildet, endre fargen til hvit, og bildetype til "Simple"
  • Flytt det dupliserte bildet inn i det første bildet
  • Endre den første bildestørrelsen (den med typen fylt bilde) til noe større (f.eks. bredde: 135 høyde: 135)

  • Lag ny tekst (høyreklikk på Canvas -> UI -> Tekst)
  • Endre justeringen til midten-senteret

  • Endre teksthøyden til 60 for å kunne passe innlastingsteksten

Til slutt vil vi lage et skript som vil bruke fremdriftsverdien på bildet

  • Lag et nytt skript, kall det "SC_CircularLoading" og lim inn koden nedenfor 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.";
        }
    }
}
  • Fest SC_CircularLoading-skriptet til ethvert objekt og tilordne dets variabler (Loading Image skal være bildet med Radial Fill-type og Loading Text skal være en tekst som viser fremdriftsverdien)

  • Trykk Play og flytt glidebryteren Loading Progress. Observer at lastebildet fylles gradvis:

Foreslåtte artikler
Arbeide med Unitys UI-system
Lag Object Glow Tutorial for Unity
Lage en enkel gressskygge i enhet
Opprette et brukergrensesnitt for vinnerskjerm i Unity
Opprette en pausemeny i Unity
Opprette flysimulatorer i Unity
Opprette en VHS-båndfiltereffekt i Unity