खोज…
परिचय
संसाधन वर्ग के साथ यह परिसंपत्तियों को गतिशील रूप से लोड करना संभव है जो दृश्य का हिस्सा नहीं हैं। यह बहुत उपयोगी है जब आपको मांग की परिसंपत्तियों पर उपयोग करना पड़ता है, उदाहरण के लिए बहु भाषा ऑडियोज, ग्रंथों आदि को स्थानीय बनाना।
एसेट्स को संसाधन नामक फ़ोल्डर में रखा जाना चाहिए। परियोजना के पदानुक्रम में कई संसाधन फ़ोल्डर का प्रसार संभव है। Resources
वर्ग आपके पास मौजूद सभी संसाधन फ़ोल्डरों का निरीक्षण करेगा।
संसाधन के भीतर रखी गई प्रत्येक संपत्ति को आपके कोड में संदर्भित नहीं होने पर भी बिल्ड में शामिल किया जाएगा। इस प्रकार संसाधनों में अंधाधुंध तरीके से संपत्ति न डालें।
//Example of how to load language specific audio from Resources
[RequireComponent(typeof(AudioSource))]
public class loadIntroAudio : MonoBehaviour {
void Start () {
string language = Application.systemLanguage.ToString();
AudioClip ac = Resources.Load(language + "/intro") as AudioClip; //loading intro.mp3 specific for user's language (note the file file extension should not be used)
if (ac==null)
{
ac = Resources.Load("English/intro") as AudioClip; //fallback to the english version for any unsupported language
}
transform.GetComponent<AudioSource>().clip = ac;
transform.GetComponent<AudioSource>().Play();
}
}
संसाधन 101
परिचय
एकता में कुछ 'विशेष रूप से नामित' फ़ोल्डर हैं जो विभिन्न प्रकार के उपयोगों की अनुमति देता है। इन फ़ोल्डरों में से एक को 'संसाधन' कहा जाता है
'रिसोर्स' फोल्डर एकता में रनटाइम पर संपत्ति को लोड करने के केवल दो तरीकों में से एक है (दूसरे को AssetBundles (यूनिटी डॉक्स) कहा जा रहा है )
'संसाधन' फ़ोल्डर आपके एसेट्स फ़ोल्डर के अंदर कहीं भी रह सकता है, और आपके पास संसाधन नाम के कई फ़ोल्डर हो सकते हैं। सभी 'संसाधन' फ़ोल्डर की सामग्री संकलन समय के दौरान विलय कर दी जाती है।
एक संसाधन फ़ोल्डर से एक परिसंपत्ति लोड करने के लिए प्राथमिक तरीके से उपयोग करने के लिए है Resources.Load कार्य करते हैं। यह फ़ंक्शन एक स्ट्रिंग पैरामीटर लेता है जो आपको संसाधन फ़ोल्डर के सापेक्ष फ़ाइल का पथ निर्दिष्ट करने की अनुमति देता है। ध्यान दें कि परिसंपत्ति लोड करते समय आपको फ़ाइल एक्सटेंशन निर्दिष्ट करने की आवश्यकता नहीं है
public class ResourcesSample : MonoBehaviour {
void Start () {
//The following line will load a TextAsset named 'foobar' which was previously place under 'Assets/Resources/Stackoverflow/foobar.txt'
//Note the absence of the '.txt' extension! This is important!
var text = Resources.Load<TextAsset>("Stackoverflow/foobar").text;
Debug.Log(string.Format("The text file had this in it :: {0}", text));
}
}
जिन वस्तुओं में कई वस्तुओं का समावेश होता है, उन्हें भी संसाधन से लोड किया जा सकता है। उदाहरण हैं ऐसी वस्तुएं 3D मॉडल हैं जिनके अंदर बेक किए गए बनावट या कई स्प्राइट हैं।
//This example will load a multiple sprite texture from Resources named "A_Multiple_Sprite"
var sprites = Resources.LoadAll("A_Multiple_Sprite") as Sprite[];
यह सब एक साथ डालें
यहां मेरी सहायक कक्षाएं हैं जो मैं किसी भी गेम के लिए सभी ध्वनियों को लोड करने के लिए उपयोग करता हूं। आप एक दृश्य में किसी भी GameObject के साथ इसे संलग्न कर सकते हैं और यह निर्दिष्ट ऑडियो फ़ाइलों को 'संसाधन / ध्वनि' फ़ोल्डर से लोड करेगा
public class SoundManager : MonoBehaviour {
void Start () {
//An array of all sounds you want to load
var filesToLoad = new string[] { "Foo", "Bar" };
//Loop over the array, attach an Audio source for each sound clip and assign the
//clip property.
foreach(var file in filesToLoad) {
var soundClip = Resources.Load<AudioClip>("Sounds/" + file);
var audioSource = gameObject.AddComponent<AudioSource>();
audioSource.clip = soundClip;
}
}
}
अंतिम नोट्स
जब यह आपके बिल्ड में परिसंपत्तियों को शामिल करने की बात आती है तो एकता स्मार्ट होती है। किसी भी संपत्ति को क्रमबद्ध नहीं किया जाता है (अर्थात एक निर्माण में शामिल किए गए दृश्य में उपयोग किया जाता है) एक निर्माण से बाहर रखा गया है। इस संसाधन फ़ोल्डर के अंदर किसी भी संपत्ति पर लागू नहीं होता है। इसलिए, इस फ़ोल्डर में संपत्ति जोड़ने पर ओवरबोर्ड न जाएं
ऐसे संसाधन जो संसाधन का उपयोग करके लोड किए गए हैं। लोड या संसाधन। LadAll को संसाधन का उपयोग करके भविष्य में अनलोड किया जा सकता है। UnloadUnusedAssets या Resources.UnloadAsset