खोज…


संकलक परिभाषाएँ

कंपाइलर परिभाषाएँ प्लेटफ़ॉर्म विशिष्ट कोड चलाती हैं। उनका उपयोग करके आप विभिन्न प्लेटफार्मों के बीच छोटे अंतर बना सकते हैं।

  • ऐप्पल डिवाइस पर ट्रिगर गेम सेंटर की उपलब्धियों और एंड्रॉइड डिवाइसों पर Google प्ले की उपलब्धियां।
  • मेनू में आइकन बदलें (विंडोज़ में विंडोज़ लोगो, लिनक्स में लिनक्स पेंगुइन)।
  • संभवतः मंच के आधार पर मंच विशिष्ट यांत्रिकी है।
  • और भी बहुत कुछ...
void Update(){ 

#if UNITY_IPHONE
    //code here is only called when running on iPhone
#endif

#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
    //code here is only ran in a unity game running on windows outside of the editor
#endif

//other code that will be ran regardless of platform

}

एकता कंपाइलर परिभाषाओं की एक पूरी सूची यहां पाई जा सकती है

आंशिक कक्षाओं के लिए मंच विशिष्ट तरीकों का आयोजन

प्लेटफ़ॉर्म विशिष्ट विधियों से आंशिक कक्षाएं आपकी लिपियों के मुख्य तर्क को अलग करने का एक स्वच्छ तरीका प्रदान करती हैं।

आंशिक कक्षाओं और विधियों को partial खोजशब्द के साथ चिह्नित किया गया है। यह संकलक को "खुला" छोड़ने और बाकी कार्यान्वयन के लिए अन्य फ़ाइलों को देखने के लिए संकलक को इंगित करता है।

// ExampleClass.cs
using UnityEngine;

public partial class ExampleClass : MonoBehaviour
{
    partial void PlatformSpecificMethod();

    void OnEnable()
    {
        PlatformSpecificMethod();
    }
}

अब हम अपने प्लेटफ़ॉर्म विशिष्ट स्क्रिप्ट के लिए फाइलें बना सकते हैं जो आंशिक विधि को लागू करती हैं। आंशिक तरीकों में पैरामीटर हो सकते हैं ( ref भी) लेकिन void वापस करना होगा।

// ExampleClass.Iphone.cs

#if UNITY_IPHONE
using UnityEngine;

public partial class ExampleClass
{
    partial void PlatformSpecificMethod()
    {
        Debug.Log("I am an iPhone");
    }
}
#endif
// ExampleClass.Android.cs

#if UNITY_ANDROID
using UnityEngine;

public partial class ExampleClass
{
    partial void PlatformSpecificMethod()
    {
        Debug.Log("I am an Android");
    }
}
#endif

यदि आंशिक विधि लागू नहीं की जाती है, तो कंपाइलर कॉल को छोड़ देगा।

युक्ति: यह पैटर्न संपादक के विशिष्ट तरीकों को बनाते समय भी उपयोगी है।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow