रनटाइम पर अपनी परतों में हेरफेर करने पर विचार करें।
संपूर्ण परतों वाली कुछ वस्तुओं के लिए टकरावों को सक्षम / अक्षम करना
Physics.IgnoreCollision और Physics.IgnoreLayerCollision आपको क्रमशः दो कोलाइडर और दो परतों के बीच टकराव को अक्षम करने की अनुमति देता है।
यदि आप किसी विशिष्ट कोलाइडर को टकराव से बाहर करना चाहते हैं, तो ऐसा करने के लिए कोई रास्ता नहीं बनाया गया है। यदि आप गैर-महामारी संबंधी कठोरता का उपयोग गैर-ट्रिगर कॉलर के साथ कर रहे हैं, तो हमेशा एक प्रतिक्रिया होगी, भले ही आप टैग द्वारा प्रतिक्रियाओं को फ़िल्टर करने का प्रयास करें।
जिस तरह से हमने अपनी परियोजना पर यह पूरा किया वह "शून्य" नामक एक परत बनाने के लिए था। शून्य किसी भी चीज से नहीं टकराता है।
अब आप अस्थायी रूप से एक कोलाइडर की टक्कर को "Void" पर अपनी परत सेट करके अक्षम कर सकते हैं, और अपनी पुरानी परत को पुनर्स्थापित करके इसे फिर से सक्षम कर सकते हैं।
यहाँ जिस्ट है:
int oldLayer = -1;
int voidLayer;
void Start()
{
voidLayer = LayerMask.NameToLayer("Void");
}
void DisableCollider(Collider col)
{
oldLayer = col.gameObject.layer;
col.gameObject.layer = voidLayer;
}
void EnableCollider(Collider col)
{
col.gameObject.layer = oldLayer;
}
हमने ऐसा विशेष रूप से इसलिए किया क्योंकि उन राइडर को सक्षम करना और निष्क्रिय करना जो कठोर बच्चों के बच्चे थे, कुछ परिस्थितियों में वास्तव में चीजों को पेंच कर सकते हैं। तो आप मज़बूती से एक कंपाउंड रिगिडबॉडी कोलाइडर के हिस्से को निष्क्रिय नहीं कर सकते हैं, लेकिन आप मज़बूती से किसी कंपाउंड कोलाइडर भागों की परत के चारों ओर स्वैप कर सकते हैं।
अब आपकी विशिष्ट स्थिति
आपकी कार पर होने वाले जॉम्बी के टकराव को कम करने के लिए, अपनी लाश को काइनेमैटिक कठोरता से ट्रिगर करने पर विचार करें, या अन्यथा उनके द्रव्यमान को बहुत छोटा करें (जैसे फ्लोट.इप्सिलॉन), इसलिए प्रभाव का कार की गति पर शून्य प्रभाव पड़ता है। प्रभाव पर, आप इस लेयर स्विच को भी कर सकते हैं, ताकि बाद में टकराव शुरू न हो, भले ही पहले वाला कार बॉडी के लिए एक नगण्य बल लागू करता हो।
आप उन्हें एक ऐसी परत पर भी ले जा सकते हैं जो कार से नहीं टकराती है।
आप एक और कोलाइडर को भी लाश पर रख सकते हैं जो भागते समय सक्रिय हो जाता है। इस तरह आप OnTriggerEnter पर नकली प्रभाव डाल सकते हैं। आप इसके साथ उतने सटीक नहीं हो सकते हैं, लेकिन आप अनुमान लगा सकते हैं कि कहीं ज़ोंबी को फेंकने के लिए संपर्क मानदंड काफी अच्छी तरह से हो सकते हैं।
आपको खुद से पूछना होगा:
क्या मैं अपनी कार के साथ भागा हुआ लाश खटखटाने में सक्षम होना चाहता हूं, या उन्हें सिर्फ एक मौत का एनीमेशन खेलना चाहिए?
क्या मुझे परवाह है अगर लाश को मारने से कार का वेग और कोणीय वेग छोटे तरीके से प्रभावित होता है?