2013-10-21 63 views

回答

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

Unity不允許修改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

調用此物體必須具有支持透明度的着色器。在Unity5中,使用標準着色器時,必須明確地將其設置爲「透明」才能操作Alpha值。在這裏輸入的形象描述

enter link description here

還應該清楚你的Alpha值的浮動從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

在Unity 5中,爲我工作的最佳方式(使對象不可見)是爲了在渲染模式下將所有遊戲對象的材質設置爲透明而不透明。然後點擊反照率旁邊的小圓形按鈕,然後向下滾動列出的項目列表,直到找到一個名爲UIMask的項目。突出顯示它並按下回車鍵。即時通訊初學者,所以問你是否需要更多的澄清。

*請注意,這是一個很難修復,我不知道如果你可以改變這與代碼。

**這是用於包含球員跳轉功能的滾球邊界。需要使牆看不見,但也碰撞能夠阻止天生玩家對象