উত্তর
আপনার প্রশ্নের সরাসরি উত্তর দিয়ে আমাকে যাত্রা শুরু করুন:
এটি কাজ করে, আমি কি ত্রুটিটিকে উপেক্ষা করতে পারি?
আপনি পারে । আপনার করা উচিত নয়, কারণ এর অর্থ কিছু ভুল হচ্ছে। আপনি এই ত্রুটিটি করতে অভ্যস্ত হয়ে উঠবেন তবে এটি "লুকিয়ে" থাকতে পারে বা অন্য কোনও ত্রুটির কারণ হতে পারে।
বর্তমানে আপনার কাছে একটি ত্রুটি বার্তা রয়েছে এবং এটি এখনও সঠিকভাবে কাজ করে। অন্যান্য উপায় কাছাকাছি, এটা না কাজ করছে এবং হচ্ছে না (বরং বা: স্বীকৃতি নয়) প্রতিক্রিয়া কেন, অনেক খারাপ হয়!
পরামর্শ
এটি কোথা থেকে এসেছে তা জানতে, পুরো জিনিসটি কয়েকটি লাইনে ভাগ করুন।
string resourceLocation = "Prefabs/Items/" + someName;
Object prefab = Resources.Load(resourceLocation);
Object instance = Instantiate(prefab);
GameObject someObject = instance as GameObject;
কোন ত্রুটি কেবল আপনাকে বলবে যে এটি কোন লাইনে ঘটেছে। যদি এই কোডটিতে ত্রুটি ঘটে থাকে তবে লাইন নম্বরটি এখানে কোন অংশটি ভুল হয়ে গেছে সে সম্পর্কে আপনাকে আরও জানাবে। এছাড়াও, আমি জেনেরিক সংস্করণটি ব্যবহার করার পরামর্শ দিচ্ছি Resources.Load, যা আমাদের চিন্তার জন্য আরও এক ধাপ কম দেয়:
string resourceLocation = "Prefabs/Items/" + someName;
GameObject prefab = Resources.Load<GameObject>(resourceLocation);
GameObject someObject = Instantiate(prefab);
কেন তা সন্ধান করা হচ্ছে
- এখন, ইউনিটি অভিজ্ঞতার একটি বিট আমাদের বলে যে, দ্বারা ঘটিত হয় "অবজেক্ট আপনি instantiate করতে চান নাল হয়"
Instantiate()।
- সুতরাং, এর মানে
prefabহল null।
- সুতরাং এর অর্থ
Resources.Loadফেরত null।
- এর জন্য ডকুমেন্টেশনটি
Resources.Load বলে " সম্পদ pathযদি এটি অন্যথায় পাওয়া যায় তবে তা বাতিল করে দেয় at "
- সুতরাং এর অর্থ এটি প্রদত্ত পথটি খুঁজে পাবে না (আমি যে স্ট্রিংটি ডেকেছি
resourceLocation)
এই পথটিতে কিছু ভুল আছে, তাই দেবুগ.লগের সাথে প্রকৃত প্রথম পদক্ষেপটি হ'ল এটি আসলে কী শেষ হয় তা দেখার জন্য to "সবকিছু যেমন ইচ্ছা মতো কাজ করে", এর সম্ভাব্য যে এখানে কিছু অনুলিপি চলছে যেখানে একটি সংস্করণ কাজ করে এবং অন্যটি আপনাকে এই ত্রুটি দেয়।
সেক্ষেত্রে ডিবাগ.লগের 2 প্যারামিটার সংস্করণটি ব্যবহার করা ভাল ধারণা Debug.Log(resourceLocation, gameObject);। এখন আপনি যদি ইউনিটি সম্পাদকের লগ বার্তায় ক্লিক করেন তবে GameObjectএটি কোথা থেকে এসেছে তা নির্বাচন করবে ।