नमस्ते यहाँ :) स्थिति है:पूर्वनिर्मित Collider2D Raycast कोलाइडर के रूप में मान्यता नहीं
मैं एक baddy पूर्वनिर्मित जो दो कोलाइडर घटक हैं है: एक सरल भौतिकी के लिए इस्तेमाल किया CapsuleCollider2D, और एक ट्रिगर माउस बिंदु टकराव के लिए ही प्रयोग किया जाता PolygonCollider2D ।
PolygonCollider2D एक संलग्न स्क्रिप्ट (Baddy.cs) केवल का उपयोग करते समय की जरूरत के माध्यम से अद्यतन किया जाता है:
if(this.gameObject.GetComponent<PolygonCollider2D>()!=null){
Destroy(this.gameObject.GetComponent<PolygonCollider2D>());
}
this.gameObject.AddComponent<PolygonCollider2D>();
this.gameObject.GetComponent<PolygonCollider2D>().isTrigger=true;
हाँ, यह गरीब अभ्यास है, लेकिन यह काम किया है मिलता है। यह पूरी तरह से काम करता है: खेल के दृश्य दृश्य में मैं रोक सकता हूं और देख सकता हूं कि वास्तव में हमारे बैडी प्रीफैब पर बहुभुज कोलाइडर है।
एक और संलग्न स्क्रिप्ट (CollisionHandler.cs) हम अपने baddy पर एक माउस प्रेस के लिए जाँच में:
if(MousePress()){
hit=Physics2D.Raycast(level.mousePoint, Vector2.zero, 0f);
if(hit&&hit.collider==this.gameObject.GetComponent<PolygonCollider2D>()){
print("baddy mousePress");
}
}
हालांकि hit.collider==this.gameObject.GetComponent<PolygonCollider2D>()
झूठी पता चला है, भले ही मैं तुरंत में हाथ से पहले दोनों hit.collider
और this.gameObject.GetComponent<PolygonCollider2D>()
प्रिंट कर सकता है हमारे if(MousePress())
और उन दोनों के रूप में परिभाषित किया है: हमारे Baddy स्क्रिप्ट remov के बाद से, क्योंकि वहाँ एक बार में केवल एक हो सकता है अलग PolygonColliders
D_Prefab(Clone) (UnityEngine.PolygonCollider2D)
वे नहीं किया जा सका es और polygonCollider एक साथ बनाता है।
कोई विचार क्या गलत हो सकता है?