Използване на бутони в потребителския интерфейс на Unity
Среда за проверка
- Уиндоус
-
- Прозорци 11
- Редактор на единство
-
- 2020.3.25ф1
Предпоставки за този съвет
Следните настройки са направени предварително като предпоставка за обяснението на тези съвети.
Отначало
Бутонът може да се използва като обект, върху който потребителят кликва самостоятелно, или може да се използва, за да направи избор, като например "да" или "не". Ако искате да получите малко по-сложен, можете да използвате бутон като обект, за да изберете елемент от списък, като например меню.
В допълнение към това, той може да се използва и за отстраняване на грешки и при натискане на бутон за произволна промяна на състоянието.
Щракнете върху бутона, за да промените текста
Ако просто кликнете върху бутона, ще направите някаква обработка. Този път, всеки път, когато щракнете върху бутона, номерът на текста ще се увеличава с 1.
Разположение и конфигуриране на потребителския интерфейс
Добавяне на текст и бутони от йерархията към изгледа.
Можете да го поставите навсякъде, стига да го поставите на място, където можете да го видите. Тъй като е трудно да се види в началното състояние, се задават настройки като "бял цвят на текста", "промяна на размера", "увеличаване на размера на шрифта" и др. Съдържанието на текста ще бъде променено автоматично по-късно, така че можете да го оставите като "Нов текст".
Настройката на знаците на бутона е разделена на "Бутон" и "Текст", така че изберете Текст и го настройте.
Добавяне на скриптове
Изберете папката Сцени от вашия проект, щракнете с десния бутон върху празно място и изберете C# Script, за да го добавите. Първоначално е по-добре да създадете скрипта в отделна папка, но ще го пропусна с цел проверка на операцията.
Името на файла трябва да е лесно за разбиране. Въведете възможно най-много буквено-цифрови знаци.
ButtonClick
В този случай тя е зададена на .
Веднъж създаден, щракнете двукратно върху скрипта C#, за да отворите редактора на скриптове. Ако вашият редактор на скриптове е Visual Studio, трябва да видите нещо подобно:
Start
, Методът не е необходим този път, така че го изтрийте, пренапишете го и го запазете, Update
както следва.
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# не е основната тема на този съвет, така че няма да го обяснявам. Моля, учете сами. Обсъждат се само описания, специфични за единството.
MonoBehaviour
Полетата, написани в класове, които наследяват от, ще могат да бъдат зададени в редактора на Unity.
CountText
Тук дефинираме текстов обект, наречен
За да бъде показан, той public
трябва да бъде публикуван с .
SerializeField
Ако обаче добавите атрибута, ще можете да го покажете в редактора с достъпност, public
различна от .
Това е по-добро описание, ако не искате да имате достъп до него от други класове колкото е възможно повече, освен за целите на настройването му в редактора.
OnClick
Предоставени са методи, за да се опише какво да се прави, когато се натисне бутон.
public
Това трябва да бъде дефинирано в .
Прикачване от редактора на Unity
Върнете се в редактора на Unity и изберете от йерархията EventSystem
.
EventSystem
инспектор ще се появи, така че пуснете C# скрипта, който току-що създадохте, в областта "Добавяне на компонент" по-долу.
Сценарият вече е готов за работа.
Всъщност този скрипт може да бъде прикрепен към всеки обект и Button
трябва да бъде прикрепен към обекта.
В този съвет, ние ще добавим, за да го направи еднакво лесно да се разбере EventSystem
.
Button
Разбира се, няма проблем с прикрепването му към . По-добре е обаче да не го прикрепяте към напълно несвързан обект, тъй като това ще предизвика объркване.
Ако погледнете добавения от вас скрипт, можете да видите, че се показва елементът "Count Text".
След като публикувате поле по този начин, ще можете да зададете стойността от редактора на Unity.
Искаме да получим достъп до текстовия обект, когато щракнем върху бутона, така че плъзнете от йерархията Text
и Count Text
го пуснете на .
Това ще ви позволи да получите достъп до него от вашия скрипт по всяко време.
След това изберете от йерархията Button
и щракнете върху + под Вкл. Щракнете в инспектора Button
.
След това ще бъде добавен един елемент.
В долния десен елемент съм изпуснал скрипт, прикачен от йерархията EventSystem
.
Тъй като трябва да поставим обекта, към който е прикрепен скриптът тук,
Ако прикачвате скрипт към бутон, трябва да включите бутон.
Ако щракнете върху "Няма функция", прикаченият скрипт ще се покаже, така че ButtonClick
изберете .
Изберете метода, който сте създали OnClick
в него.
Сега, когато кликнете върху бутона, OnClick
методът се извиква.
Изходен дневник с натискане на бутон
Ще изведа дневника, за да потвърдя, че работи. Можете да проверите дали работи само като напишете един ред и ще бъде много полезно за бъдещо отстраняване на грешки, така че е по-добре да го запомните.
ButtonClick
Отворете скрипта и OnClick
добавете следното към .
public void OnClick()
{
// コンソール ログを出力
Debug.Log("ボタンが押されました!");
}
След като влезете и запазите, стартирайте играта и кликнете върху бутона.
Всеки път, когато кликнете върху него, в раздела на конзолата се появява съобщение. Сега виждате, че работи.
Промяна на текст с щракване върху бутон
Сега, когато можете да преместите бутоните, целта на този съвет е постигната. Сега, след като поставих текстовия обект, искам да променям текста всеки път, когато щракна върху бутона.
Пренапишете сценария по следния начин.
// 省略
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();
}
}
Съдържанието е просто да увеличавате броя с 1 всеки път, когато кликнете и зададете числото на текстовия обект.
Стартирайте играта и се уверете, че броят се увеличава с всяко кликване.