Korzystanie z przycisków w interfejsie użytkownika aparatu Unity

Strona zaktualizowana :
Data utworzenia strony :

Środowisko weryfikacyjne

Windows
  • Okna 11
Edytor aparatu Unity
  • 2020.3.25f1

Wymagania wstępne dotyczące tej porady

Poniższe ustawienia zostały wcześniej wprowadzone jako warunek objaśnienia tych wskazówek.

Na początku

Przycisk może być używany jako obiekt, który użytkownik klika samodzielnie, lub może być używany do dokonywania wyboru, takiego jak "tak" lub "nie". Jeśli chcesz uzyskać nieco bardziej rozbudowane, możesz użyć przycisku jako obiektu, aby wybrać element listy, taki jak menu.

Oprócz tego może być również używany do celów debugowania i po kliknięciu przycisku w celu dowolnej zmiany stanu.

Kliknij przycisk, aby zmienić tekst

Jeśli po prostu klikniesz przycisk, wykonasz pewne przetwarzanie. Tym razem za każdym razem, gdy klikniesz przycisk, liczba tekstu zwiększy się o 1.

Rozmieszczenie i konfiguracja interfejsu użytkownika

Dodaj tekst i przyciski z hierarchii do widoku.

Możesz umieścić go w dowolnym miejscu, o ile umieścisz go w miejscu, w którym możesz go zobaczyć. Ponieważ trudno jest zobaczyć w stanie początkowym, ustawiane są ustawienia takie jak "biały kolor tekstu", "zmień rozmiar", "zwiększ rozmiar czcionki" itp. Treść tekstu zostanie później zmieniona automatycznie, więc możesz pozostawić go jako "Nowy tekst".

Ustawienie znaków przycisku jest podzielone na "Przycisk" i "Tekst", więc wybierz Tekst i ustaw je.

Dodawanie skryptów

Wybierz folder Sceny z projektu, kliknij prawym przyciskiem myszy puste miejsce, a następnie wybierz pozycję Skrypt języka C#, aby go dodać. Pierwotnie lepiej jest utworzyć skrypt w osobnym folderze, ale pominę go w celu sprawdzenia operacji.

Nazwa pliku powinna być łatwa do zrozumienia. Wprowadź jak najwięcej znaków alfanumerycznych. ButtonClick W takim przypadku jest on ustawiony na .

Po utworzeniu kliknij dwukrotnie skrypt języka C#, aby otworzyć edytor skryptów. Jeśli edytor skryptów to Visual Studio, powinno zostać wyświetlone coś takiego:

Start, Tym razem metoda nie jest potrzebna, więc usuń ją, Update przepisz i zapisz w następujący sposób.

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

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

  public void OnClick()
  {
  }
}

Składnia C# nie jest głównym tematem tej porady, więc nie będę jej wyjaśniał. Prosimy o naukę we własnym zakresie. Omówione są tylko opisy specyficzne dla aparatu Unity.

MonoBehaviour Pola zapisane w klasach, które dziedziczą z, będą mogły być ustawiane w edytorze aparatu Unity. CountText Tutaj definiujemy obiekt tekstowy o nazwie Aby został wyświetlony, public musi zostać opublikowany za pomocą . SerializeField Jeśli jednak dodasz atrybut, będziesz public mógł wyświetlić go w edytorze z ułatwieniami dostępu innymi niż . Jest to lepszy opis, jeśli nie chcesz uzyskiwać do niego dostępu z innych klas tak często, jak to możliwe, poza celem skonfigurowania go w edytorze.

OnClick Dostępne są metody opisujące, co należy zrobić po kliknięciu przycisku. public Musi to być zdefiniowane w .

Dołączanie z edytora aparatu Unity

Wróć do edytora aparatu Unity i wybierz pozycję z hierarchii EventSystem .

EventSystem inspector pojawi się, więc upuść właśnie utworzony skrypt C# w obszarze "Dodaj składnik" poniżej. Skrypt jest teraz gotowy do pracy.

W rzeczywistości ten skrypt może być dołączony do dowolnego obiektu i Button powinien być dołączony do obiektu. W tej wskazówce dodamy do, aby była jednolicie łatwa do zrozumienia EventSystem . Button Oczywiście nie ma problemu z dołączeniem go do . Lepiej jednak nie dołączać go do zupełnie niepowiązanego obiektu, ponieważ spowoduje to zamieszanie.

Jeśli spojrzysz na dodany skrypt, zobaczysz, że wyświetlany jest element "Policz tekst". Po opublikowaniu pola w ten sposób będzie można ustawić wartość z edytora aparatu Unity. Chcemy uzyskać dostęp do obiektu tekstowego po kliknięciu przycisku, więc przeciągnij go z hierarchii Text i Count Text upuść na . Umożliwi to dostęp do niego ze skryptu w dowolnym momencie.

Następnie wybierz pozycję z hierarchii Button i kliknij pozycję + w obszarze Po kliknięciu w Inspektorze Button .

Następnie zostanie dodany jeden element.

W prawym dolnym elemencie upuściłem skrypt dołączony z EventSystem hierarchii. Ponieważ musimy umieścić tutaj obiekt, do którego dołączony jest skrypt, Jeśli dołączasz skrypt do Buttona, musisz dołączyć Button.

Jeśli klikniesz "Brak funkcji", zostanie wyświetlony załączony skrypt, więc ButtonClick wybierz . Wybierz metodę, którą w nim utworzyłeś OnClick . Teraz, gdy klikniesz przycisk, metoda zostanie wywołana OnClick .

Dziennik wyjściowy za pomocą jednego kliknięcia przycisku

Wyprowadzę dziennik, aby potwierdzić, że działa. Możesz sprawdzić, czy działa, pisząc tylko jedną linijkę i będzie to bardzo przydatne do przyszłego debugowania, więc lepiej to zapamiętać.

ButtonClick Otwórz skrypt i OnClick dodaj następujące elementy do pliku .

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

Po wejściu i zapisaniu uruchom grę i kliknij przycisk.

Za każdym razem, gdy go klikniesz, na karcie konsoli pojawi się komunikat. Teraz widać, że to działa.

Zmienianie tekstu za pomocą kliknięcia przycisku

Teraz, gdy możesz przesuwać przyciski, cel tej wskazówki został osiągnięty. Teraz, po umieszczeniu obiektu tekstowego, chcę zmieniać tekst za każdym razem, gdy klikam przycisk.

Przepisz skrypt w następujący sposób.

// 省略

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

Zawartość polega po prostu na zwiększaniu licznika o 1 za każdym razem, gdy klikniesz i ustawisz liczbę na obiekt tekstowy.

Uruchom grę i upewnij się, że liczba rośnie z każdym kliknięciem.