Kasutage kasutajaliidese objektide valimist

Lehekülg uuendatud :
Lehe loomise kuupäev :

Kontrollimise keskkond

Windows
  • Windows 11
Ühtsuse toimetaja
  • 2020.3.25f1

Selle näpunäite eeltingimused

Nende näpunäidete selgitamise eeltingimuseks on eelnevalt tehtud järgmised seadistused.

viide

Kasutajaliidese näidisobjektide juurutamine

Asetage nupp lõuendile järgmiselt: Valitud objekt kuvatakse selguse huvides roheliselt.

Saate valida ainult valitud suunas olevaid objekte.

Kasutajaliidese objekti paigutamisel saate esmalt vajutada klaviatuuri või mängupuldi nooleklahve, et valida kasutajaliidese objekt määratud suunas. See on väga intuitiivne ja hõlpsasti mõistetav, nii et ma ei usu, et peate seadete muutmisega vaeva nägema.

Menüülaadses paigutuses pole aga vaikimisi võimalik teha valikutsükli toimingut, näiteks "naaske üles, kui vajutate alla, kui alumine on valitud".

Ülaltoodud joonisel ei saa te nuppu Button1 valida, vajutades alla, kui Button3 on valitud. Muidugi, kui vajutate nupu Button1 valimise ajal üles, ei saa te nuppu Button3 valida.

Valikute vahel loopimine

Siin loome mehhanismi, mis võimaldab teil valikuid lõputult läbi vaadata. Näidispaigutuses saate valida Button1, vajutades nupu Button3 valimise ajal alla, ja saate valida Button3, vajutades üles, kui nupp1 on valitud.

See juhtimine toimub skriptis. See on üldotstarbeline skript, mida saab kasutada väikese arvu kirjeldustega ja mida saab kasutada nagu teistes stseenides. Selle asemel kehtivad järgmised piirangud.

  • Üles ja alla saab liikuda ainult ühes suunas.
  • Kehtib kõigile Selectable määratud objekti all olevatele

Seetõttu on kasutamise eesmärk piiratud menüüdega, mis valitakse üles ja alla kerides, kuid see on väga kasulik, kui piirdute selle paigutusega. Muide, see on piiratud ülemise ja alumisega, kuid kui muudate skripti veidi, saate selle piirata vasakule ja paremale.

Looge oma projektis skript. Võite seda nimetada ükskõik mida, kuid ma jätan SelectLoop selle nii.

Skript näeb välja selline:

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() { }
}

Mida me teeme, on võtme valiku käitumise navigation jaoks järgmised seaded .

  • Vajutage üles-klahvi eelmise objekti valimiseks ja valige viimane objekt, et valida esimene objekt.
  • Vajutage järgmise objekti valimiseks allaklahvi või valige esimene objekt, kui see on viimane objekt.

Muide, selle objekti järjekord (valitav) sõltub hierarhia järjekorrast. Korraldage need järjestuses, milles soovite need hierarhias valida.

Pärast skripti salvestamist lisage see komponendina. Seda skripti rakendatakse lisatud objektis Selectable , nii et seekord Canvas lisame .

Proovige seda liigutada ja vaadake, kas saate seda klahvivajutusega Button1 ja Button3 vahel liigutada.