استفاده از دکمه ها در 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 هر بار که شما کلیک کنید و شماره را به شیء متن تنظیم کنید.

بازی را اجرا کنید و مطمئن شوید که تعداد با هر کلیک افزایش می یابد.