मैं फिजिक्स2डी सर्कल कास्ट का उपयोग कर रहा हूं और दस्तावेज़ीकरण पर एक नज़र डाल रहा हूं, https:// docs.unity3d.com/ScriptReference/Physics2D.CircleCast.html, एक ही नाम की 3 घोषणाएं हैं, और तीसरा मेरी आवश्यकताओं के लिए सबसे उपयुक्त है, मैं पहले वाले के बजाय इसका उपयोग कैसे करूं?
Physics2D.CircleCast(transform.position, radius, Vector2.up, ContactFilter2D.NoFilter, colliders, 0f);
मेरे पास अब तक यही है और यह मुझे यह कहते हुए एक कंपाइलर त्रुटि दे रहा है कि संपर्क फ़िल्टर को एक पूर्णांक होना चाहिए।
1 उत्तर
आप किस बारे में बात कर रहे हैं ओवरलोड ए>।
एक अतिभारित विधि का अर्थ है कि आपके पास एक ही नाम के साथ कई संस्करण हैं लेकिन अलग-अलग हस्ताक्षर हैं।
=> आप सक्रिय रूप से यह तय नहीं करते हैं कि आप किस अधिभार का उपयोग करते हैं!
कंपाइलर स्वयं यह पता लगाता है कि आप किस प्रकार के पैरामीटर किस क्रम में प्रदान करते हैं और स्वचालित रूप से दिए गए हस्ताक्षर जो सबसे अच्छा फिट बैठता है के साथ ओवरलोड विधि का उपयोग करता है पैरामीटर।
तो अगर आप लिखते हैं
Physics2D.CircleCast(transform.position, radius, Vector2.up, new ContactFilter2D().NoFilter(), colliders, 0f);
यह स्वचालित रूप से हस्ताक्षर के साथ अधिभार का उपयोग करेगा (यदि आपका colliders
एक List<RaycastHit2D>
है)
Physics2D.CircleCast(Vector2, float, Vector2, ContactFilter2D, List<RaycastHit2D>, float);
या तदनुसार (यदि आपका colliders
एक RaycastHit2[]
है)
Physics2D.CircleCast(Vector2, float, Vector2, ContactFilter2D, RaycastHit2D[], float);
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।
Physics2D.CircleCast(transform.position, radius, Vector2.up, new ContactFilter2D().NoFilter(), colliders, 0f);
जैसी किसी चीज़ की अपेक्षा करता है