मेरा स्प्राइट बाईं ओर चलता है, जैसा कि उसे होना चाहिए, लेकिन यह हिलना बंद कर देता है और ऑफस्क्रीन नहीं जाता है, जैसा कि मैं चाहता हूं। मानो कोई अदृश्य दीवार हो।
मैंने https://www.youtube.com/watch?v=YfIOPWuUjn8 आज़माया है .
वीडियो में, व्यक्ति का स्प्राइट पूरी तरह से स्क्रीन से हट जाता है लेकिन मेरा नहीं।
public Sprite Pokemon_0;
public Sprite Pokemon_1;
void Update()
{
if (transform.position.x >= -40)
{
this.gameObject.GetComponent<SpriteRenderer>().sprite = Pokemon_0;
transform.Translate(-1f,0f,0f);
}
मैं स्प्राइट पर काम कर रहा हूं जो बाईं ओर स्क्रीन से हट रहा है, और एक अलग स्प्राइट दाईं ओर से दिखाई दे रहा है और स्क्रीन के केंद्र में जा रहा है। कोड में दूसरे स्प्राइट के बारे में कुछ भी शामिल नहीं है, लेकिन इसीलिए मैंने अपने कोड में स्प्राइट का उल्लेख किया है।
2 जवाब
आप इसे केवल बाईं ओर जाने के लिए कह रहे हैं if (transform.position.x >= -40)
।
तो या तो अपना कैमरा बदलें ताकि x = -40 आपकी स्क्रीन के बाहर हो, या बूलियन एक्सप्रेशन में मान को -40
से कुछ कम कर दें ताकि वह तब तक बाईं ओर आगे बढ़े जब तक कि वह हिलना बंद न कर दे, जैसे:
if (transform.position.x >= -80f)
{
transform.Translate(-1f,0f,0f);
}
साथ ही, GetComponent
एक महंगी प्रक्रिया है, और आपको केवल एक बार स्प्राइट सेट करने की आवश्यकता है, इसलिए आपको एक Start
विधि बनानी चाहिए जो स्प्राइट असाइनमेंट करता है। इस तरह, आप हर फ्रेम को एक ही घटक प्राप्त करने और स्प्राइट को असाइन करने में समय बर्बाद नहीं करते हैं जो पहले से ही इसे सौंपा गया है।
this.gameObject.
हिस्सा बेमानी है, इसलिए आप उस हिस्से से भी छुटकारा पा सकते हैं:
Start()
{
GetComponent<SpriteRenderer>().sprite = Pokemon_0;
}
रुज़ह्म के उत्तर में जोड़कर, आप इसका उपयोग करने का भी प्रयास कर सकते हैं
if (GetComponent<Renderer>().isVisible)
{
transform.Translate(-1f,0f,0f);
}
"-40f" या "-80f" जैसे नंबर का उपयोग करने के बजाय, आप यह सुनिश्चित कर सकते हैं कि स्प्राइट ऑफ स्क्रीन होगा।
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।