Kartokite pasirinkdami vartotojo sąsajos objektus

Puslapis atnaujintas :
Puslapio sukūrimo data :

Tikrinimo aplinka

Windows
  • Langai 11
"Unity" redaktorius
  • 2020.3.25f1

Būtinos šio patarimo sąlygos

Šie nustatymai buvo atlikti iš anksto, kaip būtina sąlyga šiems patarimams paaiškinti.

Nuoroda

Vartotojo sąsajos objektų pavyzdžių diegimas

Padėkite mygtuką ant drobės taip: Pasirinktas objektas aiškumo dėlei rodomas žaliai.

Galite pasirinkti tik tuos objektus, kurie yra pasirinkta kryptimi.

Kai įdedate vartotojo sąsajos objektą, iš pradžių galite paspausti klaviatūros arba žaidimų pulto rodyklių klavišus, kad pasirinktumėte vartotojo sąsajos objektą nurodyta kryptimi. Tai labai intuityvu ir lengvai suprantama, todėl nemanau, kad jums reikia nerimauti keičiant nustatymus.

Tačiau į meniu panašiame išdėstyme pagal numatytuosius nustatymus neįmanoma atlikti pasirinkimo kilpos operacijos, pvz., "Grįžti į viršų, kai paspausite žemyn, kai pasirinkta apačia".

Aukščiau esančiame paveikslėlyje negalite pasirinkti Button1 paspausdami žemyn, kai pasirinktas Button3. Žinoma, jei paspausite, kai pasirinktas Mygtukas1, negalėsite pasirinkti Button3.

Kartoti per pasirinkimus

Čia mes sukursime mechanizmą, leidžiantį be galo pereiti per pasirinkimus. Maketo pavyzdyje galite pasirinkti Mygtukas1 paspausdami žemyn, kai pažymėtas Mygtukas3, ir galite pasirinkti Mygtukas3 paspausdami aukštyn, kai pasirinktas Mygtukas1.

Šis valdiklis atliekamas scenarijuje. Tai bendrosios paskirties scenarijus, kurį galima naudoti su nedideliu aprašymų skaičiumi ir kuris gali būti naudojamas kaip ir kitose scenose. Vietoj to taikomi šie apribojimai:

  • Galite judėti aukštyn ir žemyn tik viena kryptimi.
  • Taikoma visiems Selectable , esantiems pagal nurodytą objektą

Todėl naudojimo tikslas apsiriboja meniu, kurie pasirenkami slenkant aukštyn ir žemyn, tačiau tai labai naudinga, jei apsiribojate tuo išdėstymu. Beje, jis apsiriboja viršuje ir apačioje, bet jei šiek tiek pakeisite scenarijų, galite jį apriboti į kairę ir į dešinę.

Sukurkite scenarijų savo projekte. Galite pavadinti bet kuo, bet aš paliksiu SelectLoop kaip .

Scenarijus atrodo taip:

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

Tai, ką mes darome, yra šie rakto pasirinkimo elgesio navigation nustatymai .

  • Paspauskite klavišą aukštyn, kad pažymėtumėte ankstesnį objektą, ir pasirinkite paskutinį objektą, kad pažymėtumėte pirmąjį objektą.
  • Paspauskite klavišą žemyn, kad pažymėtumėte kitą objektą, arba pažymėkite pirmąjį objektą, jei tai paskutinis objektas.

Beje, šio objekto tvarka (pasirenkama) priklauso nuo hierarchijos tvarkos. Išdėstykite juos tokia tvarka, kokia norite, kad jie būtų pasirinkti hierarchijoje.

Išsaugoję scenarijų, pridėkite jį kaip komponentą. Šis scenarijus bus pritaikytas pridedamame objekte Selectable , todėl šį kartą Canvas pridėsime prie .

Pabandykite jį perkelti ir pažiūrėkite, ar klavišo paspaudimu galite perkelti tarp 1 mygtuko ir mygtuko3.