Käyttöliittymäobjektien valinnan selaaminen

Sivu päivitetty :
Sivun luontipäivämäärä :

Varmennusympäristö

Windows
  • Windows 11
Unity-editori
  • 2020.3.25F1

Tämän vinkin edellytykset

Seuraavat asetukset on tehty etukäteen edellytyksenä näiden vinkkien selittämiselle.

viittaus

Esimerkkikäyttöliittymäobjektien käyttöönotto

Aseta painike kankaalle seuraavasti: Valittu objekti näkyy vihreänä selkeyden vuoksi.

Voit valita vain valittuun suuntaan olevia objekteja.

Kun sijoitat käyttöliittymäobjektin, voit aluksi valita käyttöliittymäobjektin määritettyyn suuntaan painamalla näppäimistön tai peliohjaimen nuolinäppäimiä. Tämä on erittäin intuitiivinen ja helppo ymmärtää, joten mielestäni sinun ei tarvitse vaivautua muuttamaan asetuksia.

Valikkomaisessa asettelussa ei kuitenkaan ole oletusarvoisesti mahdollista suorittaa valintasilmukkatoimintoa, kuten "palaa ylös, kun painat alas, kun alaosa on valittuna".

Yllä olevassa kuvassa et voi valita Painiketta1 painamalla alas, kun Painike3 on valittuna. Jos painat ylös, kun Painike1 on valittuna, et tietenkään voi valita Painiketta3.

Valintojen selaaminen

Täällä luomme mekanismin, jonka avulla voit selata valintoja loputtomasti. Esimerkkiasettelussa voit valita Painike1 painamalla alas, kun Painike3 on valittuna, ja voit valita Painike3 painamalla ylös, kun Painike1 on valittuna.

Tämä ohjausobjekti tehdään komentosarjassa. Se on yleiskäyttöinen käsikirjoitus, jota voidaan käyttää pienellä määrällä kuvauksia ja jota voidaan käyttää kuten muissa kohtauksissa. Sen sijaan seuraavat rajoitukset ovat voimassa:

  • Voit liikkua ylös ja alas vain yhteen suuntaan.
  • Koskee kaikkia Selectable määritetyn objektin alla olevia

Siksi käytön kohde rajoittuu valikoihin, jotka valitaan vierittämällä ylös ja alas, mutta on erittäin hyödyllistä, jos rajoitat itsesi kyseiseen asetteluun. Muuten, se rajoittuu ylä- ja alaosaan, mutta jos muokkaat komentosarjaa hieman, voit rajoittaa sen vasemmalle ja oikealle.

Luo skripti projektiisi. Voit nimetä sen miksi tahansa, mutta jätän SelectLoop sen .

Skripti näyttää tältä:

using UnityEngine;
using UnityEngine.UI;  // 追加

public class SelectLoop : MonoBehaviour
{
  // 最初のフレーム更新の前に開始が呼び出されます
  void Start()
  {
    // ボタンなど選択可能なコンポーネントを取得する
    var selects = GetComponentsInChildren<Selectable>();
    for (var i = 0; i < selects.Length; i++)
    {
      var nav = selects[i].navigation;
      nav.mode = Navigation.Mode.Explicit;
      nav.selectOnUp = selects[i == 0 ? selects.Length - 1 : i - 1];
      nav.selectOnDown = selects[(i + 1) % selects.Length];
      selects[i].navigation = nav;
    }
  }

  // 更新はフレームごとに1回呼び出されます
  void Update() { }
}

Mitä teemme, on tehdä seuraavat asetukset avaimen valintakäyttäytyminen navigation .

  • Valitse edellinen objekti painamalla ylös-näppäintä ja valitse viimeinen objekti valitaksesi ensimmäisen objektin.
  • Valitse seuraava objekti painamalla alas-näppäintä tai valitse ensimmäinen objekti, jos se on viimeinen objekti.

Muuten, tämän objektin järjestys (valittavissa) riippuu hierarkian järjestyksestä. Järjestä ne järjestykseen, jossa haluat niiden valittavan hierarkiassa.

Kun olet tallentanut komentosarjan, liitä se komponenttina. Tätä komentosarjaa käytetään liitteenä olevassa objektissa Selectable , joten tällä kertaa Canvas liitämme .

Kokeile siirtää sitä ja katso, voitko siirtää sitä näppäimen painalluksella Button1:n ja Button3:n välillä.