استخدام الأزرار في واجهة مستخدم Unity

تحديث الصفحة :
تاريخ إنشاء الصفحة :

بيئة التحقق

نوافذ
  • ويندوز ١١
محرر الوحدة
  • 2020.3.25f1

المتطلبات الأساسية لهذه النصيحة

تم إجراء الإعدادات التالية مسبقا كشرط أساسي لشرح هذه النصائح.

في البداية

يمكن استخدام الزر ككائن ينقر عليه المستخدم من تلقاء نفسه ، أو يمكن استخدامه لاتخاذ قرار ، مثل "نعم" أو "لا". إذا كنت ترغب في الحصول على مزيد من التفصيل ، يمكنك استخدام زر ككائن لتحديد عنصر قائمة مثل قائمة.

بالإضافة إلى ذلك ، يمكن استخدامه أيضا لأغراض تصحيح الأخطاء وعند النقر فوق زر لتغيير الحالة بشكل تعسفي.

انقر فوق الزر لتغيير النص

إذا قمت ببساطة بالنقر فوق الزر ، فستقوم ببعض المعالجة. هذه المرة ، في كل مرة تنقر فيها على الزر ، سيزداد رقم النص بمقدار 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 يمكن تعيين الحقول المكتوبة في الفئات التي ترث منها في محرر الوحدة. CountText هنا ، نحدد كائن نصي يسمى لكي يتم عرضه ، public يجب نشره باستخدام . SerializeField ومع ذلك ، إذا أضفت السمة ، فستتمكن public من عرضها في المحرر مع إمكانية الوصول بخلاف . هذا وصف أفضل إذا كنت لا ترغب في الوصول إليه من فئات أخرى قدر الإمكان بخلاف الغرض من إعداده في المحرر.

OnClick يتم توفير طرق لوصف ما يجب القيام به عند النقر فوق زر. public يجب تعريف ذلك في .

إرفاق من محرر الوحدة

ارجع إلى محرر الوحدة وحدد من التسلسل الهرمي EventSystem .

EventSystem سيظهر المفتش ، لذا قم بإسقاط البرنامج النصي C # الذي أنشأته للتو في منطقة "إضافة مكون" أدناه. البرنامج النصي جاهز الآن للعمل.

في الواقع ، يمكن إرفاق هذا البرنامج النصي بأي كائن ، ويجب Button إرفاقه بالكائن. في هذه النصيحة ، سنضيف إلى لجعلها سهلة الفهم EventSystem بشكل موحد . Button بالطبع ، لا توجد مشكلة في إرفاقه ب . ومع ذلك ، من الأفضل عدم إرفاقه بكائن غير ذي صلة تماما ، لأنه سيسبب ارتباكا.

إذا نظرت إلى البرنامج النصي الذي أضفته ، يمكنك أن ترى أنه يتم عرض العنصر "عد النص". بمجرد نشر حقل بهذه الطريقة ، ستتمكن من تعيين القيمة من محرر الوحدة. نريد الوصول إلى كائن النص عندما ننقر فوق الزر ، لذا اسحب من التسلسل الهرمي 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 في كل مرة تقوم فيها بالنقر فوق الرقم وتعيينه على كائن النص.

قم بتشغيل اللعبة وتأكد من أن العدد يزداد مع كل نقرة.