मेरे रेस्पोंस कोरटाइन में क्या गलत है?


19

मैं एक 2D प्लेटफ़ॉर्म गेम बना रहा हूं जिसमें यदि खिलाड़ी आधार / मैदान से गिर जाता है तो मैं चाहता हूं कि खिलाड़ी निकटतम चेकपॉइंट पर प्रतिक्रिया दे। हालांकि मैं चाहता हूं कि खिलाड़ी मैदान और रिस्पॉन्स से गिरने के बीच देरी हो। यह लक्ष्य प्राप्त करने के लिए मेरे कोड का अनुभाग है:

private void OnTriggerEnter2D(Collider2D collision)
{
    Debug.Log(collision.tag);
    if (collision.tag.Equals("Kill")) 
    {
        StartCoroutine("Respawn");
    }
    else if(collision.tag.Equals("Checkpoint"))
    {

        Animator flag = collision.GetComponent<Animator>();
        if (!flag.GetBool("hasCrossed"))
        {
            flagCounter++;
            flag.SetBool("hasCrossed", true);
            checkpoint = collision.gameObject.transform.position;
        }
    }
}

IEnumerator Respawn()
{
    yield return new WaitForSeconds(respawnDelay);
    transform.position = checkpoint;

}

यह छोटे रिस्पॉन्स देरी के लिए ठीक काम करता है जैसे 1 या 2 सेकंड। लेकिन 5 सेकंड की देरी को बढ़ाने पर, निकटतम चेकपॉइंट पर प्रदर्शित होने के बाद खिलाड़ी एक पल में गायब हो जाता है और फिर कुछ पुनरावृत्तियों के बाद खिलाड़ी फिर से दिखाई देता है।

यह 2 दूसरी बार देरी के लिए है यह 2 सेकंड की देरी के लिए है

यह 5 सेकंड की देरी के लिए है यह 5 सेकंड की देरी के लिए है

मैं इसे कैसे ठीक करूं?


3
एनिमेटेड स्क्रीनशॉट प्यार करता हूँ!
कोनरक

जवाबों:


49

यह कुछ भी करने के लिए नहीं लगता है कि आपने कोरआउट कैसे स्थापित किया है। शायद यह क्या हो रहा है कि खिलाड़ी मैदान के पिछले हिस्से और फॉलआउट कोलाइडर के लिए गिरने के दौरान एक उच्च पर्याप्त त्वरण प्राप्त करता है। जब आप रिस्पना के दौरान स्थिति को स्थानांतरित करते हैं, तो यह अभी भी उसी दर से गिर रहा होगा। आपकी प्रतिक्रिया विधि में, आपकी प्रतीक्षा रेखा के कुछ समय बाद, वेग वापस शून्य पर सेट करें GetComponent<Rigidbody2D>().velocity = Vector2.zero:।


2
गेमिंग बग भयानक xD हैं
टॉम

11
आम तौर पर आपको अपने खिलाड़ी चरित्र की उतनी ही स्थिति को रीसेट करना चाहिए जितना आपको स्थिति के अलावा करने की आवश्यकता है। स्वास्थ्य, सांसद, बारूद, आदि की तरह दुश्मन दुश्मनों को रीसेट करने के लिए मत भूलना अगर यह उस तरह का खेल है।
शाफ़्ट

@ जो लेकिन दुश्मनों के बारे में क्या?
डेविड स्टार्क

8
संबंधित: जब तक आपका गेम भौतिकी-आधारित नहीं है, कई प्लेटफ़ॉर्मर्स के पास अधिक नियंत्रित फ़ॉल के लिए अनुमति देने के लिए "अधिकतम गिरावट की गति" है (और इस तरह बग से बचें)।
अवहेलना
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.