Använda knappar i Unity-användargränssnittet

Sidan uppdaterad :
Datum för skapande av sida :

Miljö för verifiering

Windows
  • Windows 11 (på engelska)
Unity-redigeraren
  • 2020.3.25f1

Förutsättningar för det här tipset

Följande inställningar har gjorts i förväg som en förutsättning för förklaringen av dessa tips.

Först

En knapp kan användas som ett objekt som användaren klickar på på egen hand, eller så kan den användas för att göra ett val, till exempel "ja" eller "nej". Om du vill bli lite mer detaljerad kan du använda en knapp som ett objekt för att välja ett listobjekt, till exempel en meny.

Utöver detta kan den också användas för felsökningsändamål och när du klickar på en knapp för att ändra tillståndet godtyckligt.

Klicka på knappen för att ändra texten

Om du bara klickar på knappen kommer du att göra en del bearbetning. Den här gången, varje gång du klickar på knappen, kommer textnumret att öka med 1.

Placering och konfiguration av användargränssnitt

Lägg till text och knappar från hierarkin i vyn.

Du kan placera den var som helst så länge du placerar den på en plats där du kan se den. Eftersom det är svårt att se i utgångsläget ställs inställningar som "vit textfärg", "ändra storlek", "öka teckenstorlek" etc. in. Innehållet i texten kommer att ändras automatiskt senare, så du kan lämna den som "Ny text".

Knappens teckeninställning är uppdelad i "Knapp" och "Text", så välj Text och ställ in den.

Lägga till skript

Välj mappen Scener från projektet, högerklicka på ett tomt utrymme och välj C#-skript för att lägga till det. Ursprungligen är det bättre att skapa skriptet i en separat mapp, men jag kommer att utelämna det för att kontrollera operationen.

Filnamnet ska vara lätt att förstå. Ange så många alfanumeriska tecken som möjligt. ButtonClick I det här fallet är den inställd på .

När du har skapat det dubbelklickar du på C#-skriptet för att öppna skriptredigeraren. Om skriptredigeraren är Visual Studio bör du se något som liknar detta:

Start, Metoden behövs inte den här gången, så ta bort den, Update skriv om den och spara den enligt följande.

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

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

  public void OnClick()
  {
  }
}

Syntaxen för C# är inte huvudämnet för det här tipset, så jag kommer inte att förklara det. Studera gärna på egen hand. Endast Unity-specifika beskrivningar diskuteras.

MonoBehaviour Fält som skrivits i klasser som ärver från kommer att kunna anges i Unity-redigeraren. CountText Här definierar vi ett textobjekt som heter För att den ska kunna visas måste den public publiceras med . SerializeField Men om du lägger till attributet kommer du public att kunna visa det i redigeraren med annan tillgänglighet än . Detta är en bättre beskrivning om du inte vill komma åt den från andra klasser så mycket som möjligt annat än för att ställa in den i redigeraren.

OnClick Det finns metoder för att beskriva vad du ska göra när du klickar på en knapp. public Detta måste definieras i .

Bifoga från Unity-redigeraren

Gå tillbaka till Unity-redigeraren och välj från hierarkin EventSystem .

EventSystem inspektör visas, så släpp C#-skriptet som du just skapade i området "Lägg till komponent" nedan. Skriptet är nu redo att fungera.

Faktum är att det här skriptet kan kopplas till vilket objekt som helst, och Button det bör kopplas till objektet. I det här tipset kommer vi att lägga till för att göra det enhetligt lätt att förstå EventSystem . Button Naturligtvis är det inga problem med att fästa den på . Det är dock bättre att inte fästa den på ett helt orelaterat föremål, eftersom det kommer att orsaka förvirring.

Om du tittar på skriptet som du har lagt till kan du se att objektet "Räkna text" visas. När du har publicerat ett fält på det här sättet kan du ange värdet från Unity-redigeraren. Vi vill komma åt textobjektet när vi klickar på knappen, så dra från hierarkin Text och Count Text släpp den på . Detta gör att du kan komma åt det från ditt skript när som helst.

Välj sedan från hierarkin Button och klicka på + under Vid klickning i Granskaren Button .

Då kommer ett objekt att läggas till.

I det nedre högra objektet har jag släppt ett skript som bifogats från hierarkin EventSystem . Eftersom vi måste placera objektet som skriptet är kopplat till här, Om du bifogar ett skript till en knapp måste du inkludera en knapp.

Om du klickar på "Ingen funktion" kommer det bifogade skriptet att visas, så ButtonClick välj . Välj den metod som du skapade OnClick i den. Nu när du klickar på knappen OnClick anropas metoden.

Utdatalogg med ett klick på en knapp

Jag kommer att mata ut loggen för att bekräfta att den fungerar. Du kan kontrollera att det fungerar bara genom att skriva en rad, och det kommer att vara mycket användbart för framtida felsökning, så det är bättre att komma ihåg det.

ButtonClick Öppna skriptet och OnClick lägg till följande i .

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

När du har gått in och sparat, kör spelet och klicka på knappen.

Varje gång du klickar på den visas ett meddelande på konsolfliken. Nu kan du se att det fungerar.

Ändra text med ett knapptryck

Nu när du kan flytta knapparna har syftet med detta tips uppnåtts. Nu när jag har placerat textobjektet vill jag ändra texten varje gång jag klickar på knappen.

Skriv om skriptet på följande sätt.

// 省略

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

Innehållet är helt enkelt att öka antalet med 1 varje gång du klickar och ställer in talet till textobjektet.

Kör spelet och se till att antalet ökar för varje klick.