किसी भी टकराव में, दो GameObjects सही शामिल हैं? जो मैं जानना चाहता हूं वह यह है कि मैं कैसे तय करूं कि किस वस्तु में मेरा अस्तित्व होना चाहिए OnCollision*
?
एक उदाहरण के रूप में, मान लीजिए कि मेरे पास प्लेयर ऑब्जेक्ट और स्पाइक ऑब्जेक्ट है। मेरा पहला विचार खिलाड़ी पर एक स्क्रिप्ट डालना है जिसमें कुछ कोड शामिल हैं:
OnCollisionEnter(Collision coll) {
if (coll.gameObject.compareTag("Spike")) {
Destroy(gameObject);
}
}
बेशक, स्पाइक ऑब्जेक्ट पर एक स्क्रिप्ट होने के बजाय सटीक समान कार्यक्षमता प्राप्त की जा सकती है जिसमें इस तरह का कोड है:
OnCollisionEnter(Collision coll) {
if (coll.gameObject.compareTag("Player")) {
Destroy(coll.gameObject);
}
}
जब भी दोनों वैध होते हैं, तो मेरे लिए प्लेयर पर स्क्रिप्ट होना ज्यादा मायने रखता है , क्योंकि इस मामले में, जब टक्कर होती है, तो प्लेयर पर एक कार्रवाई की जा रही है ।
हालाँकि, मुझे इस बात पर संदेह है कि भविष्य में आप अधिक वस्तुओं को जोड़ना चाहते हैं, जो खिलाड़ी को टक्कर पर मार देगा, जैसे कि एक दुश्मन, लावा, लेजर बीम, आदि। इन वस्तुओं के अलग-अलग टैग होने की संभावना होगी। तो फिर प्लेयर पर स्क्रिप्ट बन जाएगा:
OnCollisionEnter(Collision coll) {
GameObject other = coll.gameObject;
if (other.compareTag("Spike") || other.compareTag("Lava") || other.compareTag("Enemy")) {
Destroy(gameObject);
}
}
जबकि, उस मामले में जहां स्क्रिप्ट स्पाइक पर थी, आपको बस इतना करना होगा कि उसी स्क्रिप्ट को अन्य सभी ऑब्जेक्ट्स में जोड़ा जाए जो प्लेयर को मार सकता है और स्क्रिप्ट को कुछ नाम दे सकता है KillPlayerOnContact
।
इसके अलावा, यदि आपके पास खिलाड़ी और शत्रु के बीच टक्कर है, तो आप दोनों पर कार्रवाई करना चाहते हैं । तो उस स्थिति में, किस वस्तु को टकराव को संभालना चाहिए? या दोनों को टकराव से निपटना चाहिए और विभिन्न क्रियाएं करनी चाहिए?
मैंने पहले कभी किसी उचित आकार का खेल नहीं बनाया है और मैं सोच रहा हूं कि क्या कोड गड़बड़ हो सकता है और इसे बनाए रखना मुश्किल हो सकता है क्योंकि यह बढ़ता है अगर आपको शुरुआत में इस तरह की चीज गलत लगती है। या शायद सभी तरीके मान्य हैं और यह वास्तव में मायने नहीं रखता है?
किसी भी जानकारी बहुत सराहना की है! अपना समय देने के लिए धन्यवाद :)
Tag.SPIKE
बजाय यह होगा ?