एक परियोजना के लिए मैं एक बहुत ही सरल खेल बना रहा हूं जहां खिलाड़ी, एक पीला घन, चारों ओर घूमता है और एक सिक्का, एक बैंगनी क्षेत्र एकत्र करता है। जब खिलाड़ी सिक्के से टकराता है या छूता है, तो सिक्के को खेल क्षेत्र के दूसरे हिस्से में यादृच्छिक रूप से स्थानांतरित करने की आवश्यकता होती है, जैसे खेल सांप। मैंने इसे भी स्थापित किया है, इसलिए यदि खिलाड़ी क्षेत्र से गिर जाता है, तो यह उन्हें क्षेत्र के केंद्र में रीसेट कर देता है। समस्या यह है कि, मैं यह नहीं समझ सकता कि सिक्के को एक अलग बिंदु पर कैसे लाया जाए। इस बिंदु पर, जब भी क्यूब सिक्के से टकराता है, तो यह रीसेट की तरह काम करता है और क्यूब को वापस क्षेत्र के केंद्र में रखता है। जब क्यूब क्षेत्र से गिर जाता है तो पहला कोड रीसेट होता है। दूसरा सिक्का यादृच्छिक स्पॉनिंग माना जाता है। मुझे पता है कि मुझे सिक्का कोड में कुछ जोड़ना है या नहीं, लेकिन मैं यह नहीं समझ सकता कि क्या।

पब्लिक क्लास ResetTriggerPlayer : MonoBehaviour {

void OnTriggerEnter (Collider C)
{
    if (C.tag == "Player") {
        Transform trans = C.gameObject.GetComponent<Transform> ();
        float x = Random.Range (-10, 10);
        float z = Random.Range (-10, 10);
        trans.position = new Vector3 (0, 0.5f, 0);
    }
}

}

पब्लिक क्लास CoinMovementTrigger : MonoBehaviour {

void OnTriggerEnter (Collider C)
{
    if (C.tag == "Player") {
        Transform trans = C.gameObject.GetComponent<Transform> ();
        float x = Random.Range (-10, 10);
        float z = Random.Range (-10, 10);
        trans.position = new Vector3 (x, 0.5f, z);
    }
}

}

0
AndroidJess 14 सितंबर 2019, 21:49

1 उत्तर

सबसे बढ़िया उत्तर

कृपया जांचें कि क्या आप वाकई OnTriggerEnter को CoinMovementTrigger में कॉल करते हैं। दूसरा अवलोकन - यदि आप स्टेटमेंट में प्लेयर की जांच करते हैं। मुझे लगता है कि सिक्का वस्तु का नाम प्लेयर नहीं है: if (C.tag == "Player") {

0
user2640669 15 सितंबर 2019, 00:05