2013-10-21 8 views
6

मेरे खेल में मैं प्लेयर के दौरान किसी विशिष्ट ऑब्जेक्ट के साथ टक्कर मारने पर खिलाड़ी को 2 सेकंड के लिए पारदर्शी बनाना चाहता हूं ... क्या यह संभव है?एकता में गेम ऑब्जेक्ट पारदर्शी बनाने के लिए कैसे करें

उत्तर

10

टकराव की जांच करें। जब आप जो टकराव चाहते हैं उसे ट्रिगर किया जाता है तो आप पारदर्शिता बदल सकते हैं।

GameObject g; 

// 50% Transparency. 
g.renderer.material.color.a = 0.5f; // a is the alpha value. 

// 100% Transparency. 
g.renderer.material.color.a = 1.0f; 

तुम बस ऐसा कर सकते हैं अपने कार्यक्रम प्रतीक्षा समय बनाने के लिए: http://docs.unity3d.com/Documentation/Manual/Coroutines.html

आप देखेंगे उदाहरण वास्तव में अपने प्रश्न है।

+2

एकता आपको Color.a के मान को संशोधित करने की अनुमति नहीं देती है। आपको अस्थायी चर का उपयोग करना होगा। – Mostafa

4

इस विस्तार विधि का प्रयास करें:

public static void ChangeAlpha(this Material mat, float alphaValue) 
{ 
    Color oldColor = mat.color; 
    Color newColor = new Color(oldColor.r, oldColor.g, oldColor.b, alphaValue);   
    mat.SetColor("_Color", newColor);    
} 

फिर आप यह द्वारा कॉल कर सकते हैं:

gameObject.renderer.material.ChangeAlpha(Your Alpha Value); 
1

वस्तु आप पर इस फोन एक शेडर जो पारदर्शिता का समर्थन करता है होना आवश्यक है। यूनिटी 5 में, मानक शेडर का उपयोग करते समय, आपको अल्फा मान में हेरफेर करने में सक्षम होने के लिए इसे "पारदर्शी" पर स्पष्ट रूप से सेट करना होगा। छवि यहाँ विवरण दर्ज

enter link description here

यह भी आप के लिए स्पष्ट है कि अल्फा मूल्य एक नाव जो 0.0f से 1.0f को जाता है होना चाहिए ताकि उदा सेटिंग

var other : GameObject; 
other.renderer.material.color.a = 0.5; // 50 % transparent 
other.renderer.material.color.a = 1.0; // 100% visible 

ऑब्जेक्ट को 50% पारदर्शी बना देगा।

0

यूनिटी 5 में मेरे लिए काम करने का सबसे अच्छा तरीका (एक उद्देश्य को अविश्वसनीय बनाने के लिए) सभी गेम ऑब्जेक्ट की सामग्री को सेट करना था जो मैं प्रतिपादन मोड के तहत पारदर्शी के लिए अदृश्य होना चाहता था। फिर अल्बेडो के बगल में छोटे गोल बटन पर क्लिक करें और फिर दिए गए आइटमों की सूची पर नीचे स्क्रॉल करें जब तक आपको यूमास्क नामक कोई नहीं मिलता। इसे हाइलाइट करें और एंटर दबाएं। मैं एक नौसिखिया हूं इसलिए पूछें कि आपको और स्पष्टीकरण की आवश्यकता है या नहीं।

* ध्यान दें कि यह एक कठिन फिक्स है और मुझे यकीन नहीं है कि क्या आप इसे कोड के साथ बदल सकते हैं।

** यह एक खिलाड़ी कूद समारोह के साथ रोल-ए-बॉल में सीमाओं के लिए बनाया गया था। दीवारों को अदृश्य बनाने के लिए जरूरी है, लेकिन हवा पैदा हुए खिलाड़ी ऑब्जेक्ट को रोकने के लिए टक्कर-सक्षम भी

संबंधित मुद्दे

 संबंधित मुद्दे