استفاده از دکمه ها در UI Unity
محیط تایید
- ویندوز
-
- ویندوز 11
- ویرایشگر یونیتی
-
- دانلود: 2020.3.25f1
پیشنیازهای این نکته
تنظیمات زیر از قبل به عنوان پیش نیاز برای توضیح این نکات ساخته شده است.
در ابتدا
یک دکمه می تواند به عنوان یک شی استفاده شود که کاربر به تنهایی کلیک می کند یا می تواند برای انتخاب مانند "بله" یا "نه" استفاده شود. اگر می خواهید کمی دقیق تر شوید، می توانید از یک دکمه به عنوان یک شی برای انتخاب یک ایتم لیست مانند منو استفاده کنید.
علاوه بر این، می تواند برای اهداف اشکال زدایی و هنگام کلیک بر روی یک دکمه برای تغییر حالت خودسرانه استفاده شود.
برای تغییر متن روی دکمه کلیک کنید
اگر به سادگی روی دکمه کلیک کنید، برخی از پردازش ها را انجام خواهید داد. این بار، هر بار که روی دکمه کلیک می کنید، شماره متن 1 افزایش می یابد.
قرار دادن UI و پیکربندی
متن و دکمه ها را از سلسله مراتب به نما اضافه کنید.
شما می توانید ان را در هر جایی قرار دهید تا زمانی که ان را در جایی قرار دهید که بتوانید ان را ببینید. از انجا که دیدن ان در حالت اولیه دشوار است، تنظیماتی مانند "رنگ متن سفید"، "تغییر اندازه"، "افزایش اندازه فونت" و غیره تنظیم شده است. محتوای متن بعدا به طور خودکار تغییر خواهد کرد، بنابراین می توانید ان را به عنوان "متن جدید" بگذارید.
تنظیم شخصیت دکمه به "دکمه" و "متن" تقسیم می شود، بنابراین متن را انتخاب کنید و ان را تنظیم کنید.
اضافه کردن دستنوشتهها
پوشه Scenes را از پروژه خود انتخاب کنید، روی یک فضای خالی کلیک راست کنید و C# Script را برای اضافه کردن ان انتخاب کنید. در اصل، بهتر است اسکریپت را در یک پوشه جداگانه ایجاد کنید، اما من ان را به منظور بررسی عملیات حذف خواهم کرد.
نام فایل باید به راحتی قابل درک باشد. تا حد ممکن حروف الفبایی را وارد کنید.
ButtonClick
در این مورد، ان را به تنظیم شده است.
پس از ایجاد، روی اسکریپت C# دوبار کلیک کنید تا ویرایشگر اسکریپت باز شود. اگر ویرایشگر اسکریپت شما ویژوال استودیو است، باید چیزی شبیه به این را ببینید:
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
این باید در تعریف شود.
پیوستن از ویرایشگر وحدت
بازگشت به ویرایشگر وحدت و انتخاب از سلسله مراتب EventSystem
.
EventSystem
بازرس ظاهر خواهد شد، بنابراین اسکریپت C# را که در منطقه "Add Component" ایجاد کرده اید، رها کنید.
فیلمنامه در حال حاضر اماده کار است.
در واقع، این اسکریپت را می توان به هر شی متصل کرد و Button
باید به شی متصل شود.
در این نکته، ما اضافه خواهیم کرد تا درک EventSystem
ان را به طور یکنواخت اسان کنیم.
Button
البته هیچ مشکلی با اتصال ان به . با این حال، بهتر است ان را به یک شیء کاملا غیر مرتبط متصل نکنید، زیرا باعث سردرگمی می شود.
اگر به اسکریپتی که اضافه کرده اید نگاه کنید، می توانید ببینید که مورد "Count Text" نمایش داده می شود.
هنگامی که یک فیلد را به این روش منتشر کردید، می توانید مقدار را از ویرایشگر Unity تنظیم کنید.
ما می خواهیم برای دسترسی به شی متن زمانی که ما با کلیک بر روی دکمه، بنابراین کشیدن از سلسله مراتب Text
و Count Text
رها کردن ان در.
این به شما اجازه می دهد تا در هر زمان از اسکریپت خود به ان دسترسی داشته باشید.
بعد، از سلسله مراتب Button
انتخاب کنید و روی + زیر کلیک کنید On Click in the Inspector Button
.
سپس یک مورد اضافه خواهد شد.
در مورد پایین سمت راست، من یک اسکریپت متصل از سلسله مراتب را EventSystem
حذف کرده ام.
از انجا که ما نیاز به قرار دادن شی که اسکریپت در اینجا متصل است،
اگر شما در حال اتصال یک اسکریپت به یک دکمه هستید، باید یک دکمه را اضافه کنید.
اگر روی "No Function" کلیک کنید، اسکریپت پیوست شده نمایش داده می شود، بنابراین 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 هر بار که شما کلیک کنید و شماره را به شیء متن تنظیم کنید.
بازی را اجرا کنید و مطمئن شوید که تعداد با هر کلیک افزایش می یابد.