इस एकता के बारे में उन अजीब चीजों में से एक है ... वास्तविक दुनिया परियोजनाओं के
100% इस की जरूरत है, लेकिन एकता यह करने के लिए भूल गया था।
लघु संस्करण:
आप Touchable.cs जरूरत हर एकता परियोजना में:
// file Touchable.cs
// Correctly backfills the missing Touchable concept in Unity.UI's OO chain.
using UnityEngine;
using UnityEngine.UI;
#if UNITY_EDITOR
using UnityEditor;
[CustomEditor(typeof(Touchable))]
public class Touchable_Editor : Editor
{ public override void OnInspectorGUI(){} }
#endif
public class Touchable:Text
{ protected override void Awake() { base.Awake();} }
उपयोग एकता के साधारण 'बटन बनाएँ' संपादक समारोह
के रूप में आप जानते हैं, संपादक फ़ंक्शन दो कंप जोड़ता है आपके लिए ऑनेंट स्वचालित रूप से। एक एक Text
और एक एक Image
है
बस उन्हें दोनों
हटाना बटन
आप से किया जाता है पर ऊपर स्क्रिप्ट Touchable.cs
ड्रॉप है ...। यही सब है इसके लिए।
यह एकता उन्नयन के साथ "क्षय" नहीं कर सकता है।
आप वास्तव में यह की चोटी पर Touchable
छोड़ने के द्वारा "buttonize" कर सकते हैं कुछ भी .UI
में।
बटन बनाने के लिए कभी भी "पारदर्शी छवि जोड़ें" कभी नहीं।
यूनिटी ओओ श्रृंखला में एक "स्पर्श करने योग्य" अवधारणा को अमूर्त करने के लिए भूल गई।
तो, हमें डेवलपर्स को यूनिटी के वर्गों से "अपनी" स्पर्श करने योग्य कक्षा बनाना है।
यह OO में क्लासिक "बैकफिलिंग" समस्या है।
जब "बैकफिलिंग" एकमात्र मुद्दा यह है कि: यह पूरी तरह से ऑटो-रखरखाव होना चाहिए। केवल एक अच्छा समाधान है, Touchable.cs, जो हर कोई उपयोग करता है।
एकता एक बटन परियोजनाओं तो सब वास्तविक दुनिया में इस तरह दिखता है:
एक आपके पास एकता के Button.cs
दो आप Touchable.cs
जोड़ने के लिए कुछ टीमें एक संपादक फ़ंक्शन "बेहतर बटन बनाएं" बनाती हैं जो कि बटन.cs + Touchable.cs के साथ गेम ऑब्जेक्ट बनाता है।
महत्वपूर्ण टिप ...
कहो आप एक बहुत जटिल यूआई पैनल हो सकता है। शायद यह आकार बदलता है। या शायद आपके पास एक एनीमेशन है।
आश्चर्यजनक बात यह है कि आप पर कुछ भी "बटन + टच करने योग्य" छोड़ सकते हैं, और यह काम करेगा।
बस बटन + टच करने योग्य सेट करें ताकि माता-पिता को भरने के लिए विस्तार किया जा सके। यही सब है इसके लिए।
इस उदाहरण छवि, "फिर से शुरू" और "छोड़" में कुछ भी हो सकता है। (एक एनीमेशन, कई भागों, पाठ, स्प्राइट, somethign अदृश्य, एक ढेर के साथ एक जटिल पैनल -। कुछ भी)
सभी मामलों में, सिर्फ एक बटन + स्पर्श नीचे ड्रॉप और आप एक निर्दोष बटन होता है।
वास्तव में: यह दृष्टिकोण इतना आसान है कि आप इस दृष्टिकोण का उपयोग करके सबसे सरल बटन भी बनाएंगे।
कहें कि आपका बटन एक छोटी छवि है। सिर्फ एक छवि है, और फिर उस पर एक बटन + टच करने योग्य है।) (के बजाय संपादक में वास्तव में भ्रामक और समस्याग्रस्त "बटन" समारोह का उपयोग करें।)
स्थिति को समझना ...
1 एकता के Button.cs
वर्ग बढ़िया है।
2) लेकिन संपादक समारोह "एक बटन बनाने के" कचरा है ...
3) यह एक "उल्टा" बटन बनाता है,
4) यानी, यह एक पाठ डालता है/छवि Button.cs
5) "बटन सत्ता" के तहत कुछ आप बिल्कुल कुछ भी करने के लिए जोड़ चाहिए। यह ठीक है कि यह बटन + टच करने योग्य के साथ कैसे काम करता है।
6) तो - काफी बस -
1. कुछ भी आप चाहते हैं लो। पाठ, छवि, पैनल, अदृश्य, एनीमेशन - जो भी हो।
2. ड्रॉप बटन + उस पर टच करने योग्य - आप कर चुके हैं।
इस प्रकार सभी एकता में सभी बटन कैसे करते हैं!
ऐतिहासिक क्रेडिट: मेरा मानना है कि एकता मंच उपयोगकर्ता "signalZak" पहली बार इस बाहर कई, कई साल पहले सोचने के लिए था!
बस बच्चे के पाठ को हटाएं और छवि अल्फा को 0 पर बदलें –
क्यों नहीं? क्या कोई समस्या होगी? –
संक्षेप में, ** एकता भूल गई, या ** नहीं चुना, ओओ श्रृंखला में "टच करने योग्य" अवधारणा है, जो छवियों जैसी अच्छी तरह से "स्पर्श करने योग्य" है। अनिवार्य रूप से, इसका मतलब है कि डेवलपर्स को (एक तरफ या दूसरा) एकता के लिए अपनी 'टच करने योग्य' कक्षा बनाना है - जो एक क्लासिक "बैकफिलिंग" ओओ स्थिति है। जब समग्र समस्या "बैकफिलिंग" यह है कि यह पूरी तरह से ऑटो-रखरखाव होना चाहिए और सौभाग्य से एक अच्छा समाधान प्रतीत होता है। – Fattie