Mygtukų naudojimas "Unity" vartotojo sąsajoje

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.

Iš pradžių

Mygtukas gali būti naudojamas kaip objektas, kurį vartotojas spusteli pats, arba jis gali būti naudojamas norint pasirinkti, pvz., "Taip" arba "Ne". Jei norite šiek tiek išsamiau paaiškinti, galite naudoti mygtuką kaip objektą, kad pasirinktumėte sąrašo elementą, pvz., meniu.

Be to, jis taip pat gali būti naudojamas derinimo tikslais ir spustelėjus mygtuką, kad savavališkai pakeistumėte būseną.

Spustelėkite mygtuką, kad pakeistumėte tekstą

Jei tiesiog spustelėsite mygtuką, atliksite tam tikrą apdorojimą. Šį kartą kiekvieną kartą spustelėjus mygtuką, teksto numeris padidės 1.

Vartotojo sąsajos išdėstymas ir konfigūravimas

Įtraukite tekstą ir mygtukus iš hierarchijos į rodinį.

Galite įdėti jį bet kur, jei tik įdėsite į vietą, kur galite jį pamatyti. Kadangi pradinėje būsenoje sunku pamatyti, nustatomi tokie nustatymai kaip "balto teksto spalva", "keisti dydį", "padidinti šrifto dydį" ir kt. Teksto turinys vėliau bus automatiškai pakeistas, todėl galėsite palikti jį kaip "Naujas tekstas".

Mygtuko simbolių nustatymas yra padalintas į "Mygtukas" ir "Tekstas", todėl pasirinkite Tekstas ir nustatykite jį.

Scenarijų pridėjimas

Pasirinkite aplanką Scenos iš savo projekto, dešiniuoju pelės mygtuku spustelėkite tuščią vietą ir pasirinkite C# Script, kad jį pridėtumėte. Iš pradžių geriau sukurti scenarijų atskirame aplanke, tačiau aš jį praleisiu, kad patikrinčiau operaciją.

Failo pavadinimas turėtų būti lengvai suprantamas. Įveskite kuo daugiau raidinių ir skaitinių simbolių. ButtonClick Tokiu atveju jis nustatytas į .

Sukūrę dukart spustelėkite scenarijų C#, kad atidarytumėte scenarijų rengyklę. Jei jūsų scenarijų rengyklė yra "Visual Studio", turėtumėte matyti kažką panašaus:

Start, Šį kartą metodas nereikalingas, todėl ištrinkite jį, Update perrašykite ir išsaugokite taip.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;    // 追加

public class ButtonClick : MonoBehaviour
{
  /// <summary>カウントアップするテキストオブジェクト。</summary>
  [SerializeField] Text CountText;

  public void OnClick()
  {
  }
}

C# sintaksė nėra pagrindinė šio patarimo tema, todėl jos nepaaiškinsiu. Prašome mokytis savarankiškai. Aptariami tik su Vienybe susiję aprašymai.

MonoBehaviour Laukus, parašytus klasėse, iš kurių paveldima, bus galima nustatyti "Unity" redaktoriuje. CountText Čia mes apibrėžiame teksto objektą, vadinamą Kad jis būtų rodomas, jis public turi būti paskelbtas su . SerializeField Tačiau jei pridėsite atributą, public galėsite jį rodyti redaktoriuje su kitu pritaikymu neįgaliesiems nei . Tai geresnis aprašymas, jei nenorite jo kuo labiau pasiekti iš kitų klasių, išskyrus tai, kad norite jį nustatyti redaktoriuje.

OnClick Pateikiami metodai, apibūdinantys, ką daryti spustelėjus mygtuką. public Tai turi būti apibrėžta .

Pridedama iš "Unity" redaktoriaus

Grįžkite į "Unity" rengyklę ir pasirinkite iš hierarchijos EventSystem .

EventSystem pasirodys inspektorius, todėl numeskite ką tik sukurtą C# scenarijų žemiau esančioje srityje "Pridėti komponentą". Scenarijus dabar paruoštas darbui.

Tiesą sakant, šis scenarijus gali būti pritvirtintas prie bet kurio objekto ir Button turėtų būti pritvirtintas prie objekto. Šiame patarime mes pridėsime, kad būtų vienodai lengva suprasti EventSystem . Button Žinoma, nėra jokių problemų jį pritvirtinti prie . Tačiau geriau ne prijungti jį prie visiškai nesusijusio objekto, nes tai sukels painiavą.

Jei pažvelgsite į pridėtą scenarijų, matote, kad rodomas elementas "Skaičiuoti tekstą". Tokiu būdu paskelbę lauką, galėsite nustatyti reikšmę naudodami "Unity" rengyklę. Norime pasiekti teksto objektą, kai spustelėjame mygtuką, todėl vilkite iš hierarchijos Text ir Count Text numeskite jį . Tai leis jums bet kada pasiekti jį iš savo scenarijaus.

Tada pasirinkite iš hierarchijos Button ir spustelėkite + po Inspektoriaus Button spustelėjimu .

Tada bus pridėtas vienas elementas.

Apatiniame dešiniajame elemente numečiau scenarijų, pridėtą prie EventSystem hierarchijos. Kadangi čia turime įdėti objektą, prie kurio pridedamas scenarijus, Jei prie mygtuko pridedate scenarijų, turite įtraukti mygtuką.

Jei spustelėsite "Nėra funkcijos", bus rodomas pridėtas scenarijus, todėl ButtonClick pasirinkite . Pasirinkite jame sukurtą OnClick metodą. Dabar, kai spustelėsite mygtuką, OnClick metodas vadinamas.

Išvesties žurnalas vienu mygtuko paspaudimu

Išvesiu žurnalą, kad patvirtinčiau, jog jis veikia. Galite patikrinti, ar jis veikia tik rašydami vieną eilutę, ir tai bus labai naudinga būsimam derinimui, todėl geriau jį prisiminti.

ButtonClick Atidarykite scenarijų ir OnClick įtraukite toliau pateiktą informaciją į .

public void OnClick()
{
  // コンソール ログを出力
  Debug.Log("ボタンが押されました!");
}

Įvedę ir išsaugoję, paleiskite žaidimą ir spustelėkite mygtuką.

Kiekvieną kartą spustelėjus jį, konsolės skirtuke pasirodo pranešimas. Dabar matote, kad jis veikia.

Teksto keitimas vienu mygtuko paspaudimu

Dabar, kai galite perkelti mygtukus, šio patarimo tikslas buvo pasiektas. Dabar, kai įdėjau teksto objektą, noriu pakeisti tekstą kiekvieną kartą, kai spusteliu mygtuką.

Perrašykite scenarijų taip.

// 省略

public class ButtonClick : MonoBehaviour
{
  /// <summary>カウントアップするテキストオブジェクト。</summary>
  [SerializeField] Text CountText;

  /// <summary>クリックカウント。</summary>
  private int _counter = 0;

  public void OnClick()
  {
    // コンソール ログを出力
    Debug.Log("ボタンが押されました!");

    // カウントを増やす
    _counter++;

    // カウントした数を表示する
    CountText.text = _counter.ToString();
  }
}

Turinys yra tiesiog padidinti skaičių 1 kiekvieną kartą, kai spustelėsite ir nustatysite skaičių į teksto objektą.

Paleiskite žaidimą ir įsitikinkite, kad skaičius didėja su kiekvienu paspaudimu.