Brug af knapper i Unity-brugergrænsefladen

Side opdateret :
Dato for oprettelse af side :

Miljø til bekræftelse

Windows
  • Windows 11
Enhedslistens redaktør
  • 2020.3.25f1

Forudsætninger for dette tip

Følgende indstillinger er foretaget på forhånd som en forudsætning for forklaringen af disse tip.

Først

En knap kan bruges som et objekt, som brugeren klikker på alene, eller den kan bruges til at foretage et valg, f.eks. "ja" eller "nej". Hvis du vil blive lidt mere detaljeret, kan du bruge en knap som et objekt til at vælge et listeelement, såsom en menu.

Ud over dette kan det også bruges til fejlfindingsformål, og når du klikker på en knap for at ændre tilstanden vilkårligt.

Klik på knappen for at ændre teksten

Hvis du blot klikker på knappen, vil du foretage en vis behandling. Denne gang, hver gang du klikker på knappen, øges tekstnummeret med 1.

Placering og konfiguration af brugergrænsefladen

Føj tekst og knapper fra hierarkiet til visningen.

Du kan placere det hvor som helst, så længe du lægger det et sted, hvor du kan se det. Da det er svært at se i den oprindelige tilstand, indstilles indstillinger som "hvid tekstfarve", "skift størrelse", "forøg skriftstørrelse" osv. Indholdet af teksten ændres automatisk senere, så du kan lade det være som "Ny tekst".

Knappens tegnindstilling er opdelt i "Knap" og "Tekst", så vælg Tekst og indstil den.

Tilføjelse af scripts

Vælg mappen Scener fra dit projekt, højreklik på et tomt rum, og vælg C # Script for at tilføje det. Oprindeligt er det bedre at oprette scriptet i en separat mappe, men jeg vil udelade det med det formål at kontrollere operationen.

Filnavnet skal være let at forstå. Indtast så mange alfanumeriske tegn som muligt. ButtonClick I dette tilfælde er den indstillet til .

Når den er oprettet, skal du dobbeltklikke på C#-scriptet for at åbne scripteditoren. Hvis scripteditoren er Visual Studio, bør du se noget i retning af:

Start, Metoden er ikke nødvendig denne gang, så slet den, Update omskriv den og gem den som følger.

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

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

  public void OnClick()
  {
  }
}

Syntaksen for C # er ikke hovedemnet for dette tip, så jeg vil ikke forklare det. Undersøg venligst på egen hånd. Kun enhedsspecifikke beskrivelser diskuteres.

MonoBehaviour Felter skrevet i klasser, der arver fra, vil kunne indstilles i Unity Editor. CountText Her definerer vi et tekstobjekt kaldet For at den kan vises, skal den public offentliggøres med . SerializeField Men hvis du tilføjer attributten, vil du public være i stand til at vise den i editoren med anden tilgængelighed end . Dette er en bedre beskrivelse, hvis du ikke ønsker at få adgang til den fra andre klasser så meget som muligt andet end med det formål at konfigurere den i editoren.

OnClick Der findes metoder til at beskrive, hvad der skal gøres, når der klikkes på en knap. public Dette skal defineres i .

Vedhæftning fra Unity Editor

Gå tilbage til Unity Editor, og vælg fra hierarkiet EventSystem .

EventSystem Inspektøren vises, så slip det C # -script, du lige har oprettet, i området "Tilføj komponent" nedenfor. Scriptet er nu klar til at arbejde.

Faktisk kan dette script knyttes til ethvert objekt, og Button det skal knyttes til objektet. I dette tip tilføjer vi for at gøre det ensartet let at forstå EventSystem . Button Selvfølgelig er der ikke noget problem med at vedhæfte det til . Det er dog bedre ikke at vedhæfte det til et helt uafhængigt objekt, da det vil forårsage forvirring.

Hvis du ser på det script, du tilføjede, kan du se, at elementet "Tæl tekst" vises. Når du har offentliggjort et felt på denne måde, vil du være i stand til at indstille værdien fra Unity Editor. Vi vil have adgang til tekstobjektet, når vi klikker på knappen, så træk fra hierarkiet Text og Count Text slip det på . Dette giver dig til enhver tid adgang til det fra dit script.

Vælg derefter fra hierarkiet Button og klik på + under Ved klik i inspektøren Button .

Derefter tilføjes et element.

I nederste højre element har jeg droppet et script vedhæftet fra hierarkiet EventSystem . Da vi skal sætte det objekt, som scriptet er knyttet til her, Hvis du vedhæfter et script til en knap, skal du inkludere en knap.

Hvis du klikker på "Ingen funktion", vises det vedhæftede script, så ButtonClick vælg . Vælg den metode, du oprettede OnClick i den. Når du nu klikker på knappen, OnClick kaldes metoden.

Output log med et klik på en knap

Jeg vil output loggen for at bekræfte, at det virker. Du kan kontrollere, at det virker bare ved at skrive en linje, og det vil være meget nyttigt til fremtidig fejlfinding, så det er bedre at huske det.

ButtonClick Åbn scriptet, og OnClick føj følgende til .

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

Når du har indtastet og gemt, skal du køre spillet og klikke på knappen.

Hver gang du klikker på den, vises en meddelelse på konsolfanen. Nu kan du se, at det virker.

Skift tekst med et klik på en knap

Nu hvor du kan flytte knapperne, er formålet med dette tip opnået. Nu, hvor jeg har placeret tekstobjektet, vil jeg ændre teksten, hver gang jeg klikker på knappen.

Omskriv scriptet som følger.

// 省略

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

Indholdet er simpelthen at øge antallet med 1 hver gang du klikker og indstiller tallet til tekstobjektet.

Kør spillet og sørg for, at antallet stiger med hvert klik.