एकता UI में बटन का उपयोग करना

पेज अद्यतन :
पेज निर्माण की तारीख :

सत्यापन वातावरण

विंडोज़
  • विंडोज 11
एकता संपादक
  • 2020.3.25f1

इस टिप के लिए आवश्यक शर्तें

इन युक्तियों के स्पष्टीकरण के लिए एक शर्त के रूप में निम्नलिखित सेटिंग्स को अग्रिम में बनाया गया है।

पहले

एक बटन का उपयोग एक ऑब्जेक्ट के रूप में किया जा सकता है जिसे उपयोगकर्ता अपने दम पर क्लिक करता है, या इसका उपयोग "हां" या "नहीं" जैसे विकल्प बनाने के लिए किया जा सकता है। यदि आप थोड़ा और विस्तृत प्राप्त करना चाहते हैं, तो आप मेनू जैसे सूची आइटम का चयन करने के लिए एक बटन को ऑब्जेक्ट के रूप में उपयोग कर सकते हैं।

इसके अलावा, इसका उपयोग डिबगिंग उद्देश्यों के लिए और मनमाने ढंग से स्थिति को बदलने के लिए बटन पर क्लिक करते समय भी किया जा सकता है।

पाठ परिवर्तित करने के लिए बटन क्लिक करें

यदि आप बस बटन पर क्लिक करते हैं, तो आप कुछ प्रसंस्करण करेंगे। इस बार, हर बार जब आप बटन क्लिक करते हैं, तो पाठ संख्या 1 से बढ़ जाएगी।

UI प्लेसमेंट और कॉन्फ़िगरेशन

दृश्य में पदानुक्रम से पाठ और बटन जोड़ें.

आप इसे कहीं भी रख सकते हैं जब तक आप इसे ऐसी जगह पर रखते हैं जहां आप इसे देख सकते हैं। चूंकि प्रारंभिक अवस्था में देखना मुश्किल है, इसलिए "सफेद पाठ रंग", "आकार बदलें", "फ़ॉन्ट आकार बढ़ाएं" आदि जैसी सेटिंग्स सेट की जाती हैं। पाठ की सामग्री बाद में स्वचालित रूप से बदल जाएगी, इसलिए आप इसे "नया पाठ" के रूप में छोड़ सकते हैं।

बटन की वर्ण सेटिंग को "बटन" और "टेक्स्ट" में विभाजित किया गया है, इसलिए टेक्स्ट का चयन करें और इसे सेट करें।

स्क्रिप्ट जोड़ना

अपने प्रोजेक्ट से दृश्य फ़ोल्डर का चयन करें, किसी खाली स्थान पर राइट-क्लिक करें, और इसे जोड़ने के लिए सी # स्क्रिप्ट का चयन करें। मूल रूप से, स्क्रिप्ट को एक अलग फ़ोल्डर में बनाना बेहतर है, लेकिन मैं ऑपरेशन की जांच के उद्देश्य से इसे छोड़ दूंगा।

फ़ाइल का नाम समझने में आसान होना चाहिए। जितना संभव हो उतने अल्फ़ान्यूमेरिक वर्ण दर्ज करें. ButtonClick इस मामले में, यह सेट है।

एक बार बनाने के बाद, स्क्रिप्ट संपादक खोलने के लिए सी # स्क्रिप्ट डबल-क्लिक करें। यदि आपका स्क्रिप्ट संपादक 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()
  {
  }
}

सी # का सिंटैक्स इस टिप का मुख्य विषय नहीं है, इसलिए मैं इसे नहीं समझाऊंगा। कृपया अपने दम पर अध्ययन करें। केवल एकता-विशिष्ट विवरणों पर चर्चा की जाती है।

MonoBehaviour विरासत में प्राप्त कक्षाओं में लिखे गए फ़ील्ड एकता संपादक में सेट किए जा सकेंगे। CountText यहां, हम एक पाठ ऑब्जेक्ट को परिभाषित करते हैं जिसे इसे प्रदर्शित करने के लिए, इसे public इसके साथ प्रकाशित किया जाना चाहिए। SerializeField हालाँकि, यदि आप विशेषता जोड़ते हैं, तो आप public इसे संपादक में अन्य पहुंच के साथ प्रदर्शित करने में सक्षम होंगे। यह एक बेहतर विवरण है यदि आप इसे संपादक में स्थापित करने के उद्देश्य के अलावा अन्य वर्गों से जितना संभव हो उतना एक्सेस नहीं करना चाहते हैं।

OnClick बटन क्लिक किए जाने पर क्या करना है, इसका वर्णन करने के लिए विधियाँ प्रदान की जाती हैं. public इसे इसमें परिभाषित किया जाना चाहिए।

एकता संपादक से संलग्न करना

एकता संपादक पर लौटें और पदानुक्रम EventSystem से चयन करें।

EventSystem निरीक्षक दिखाई देगा, इसलिए नीचे दिए गए "घटक जोड़ें" क्षेत्र में आपके द्वारा बनाई गई सी # स्क्रिप्ट को छोड़ दें। स्क्रिप्ट अब काम करने के लिए तैयार है।

वास्तव में, इस स्क्रिप्ट को किसी भी वस्तु से जोड़ा जा सकता है, और 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 से बढ़ाना है।

गेम चलाएं और सुनिश्चित करें कि प्रत्येक क्लिक के साथ संख्या बढ़ जाती है।