2015-12-22 91 views
-1

如何隱藏在運行時間/顯示地形和其他gameObjects(由C#代碼)?
我想顯示/隱藏地形和gameObjects在淡入/淡出風格隱藏/顯示地形programmaticlly

+1

爲了得到一個「淡入/淡出」的風格,您將需要一個着色器的結果。你要告訴我們爲什麼你要這樣做,這可能有助於給你一個合適的答案。 – AntiHeadshot

+0

你使用什麼材質/着色器?標準? –

回答

-1
public class ChangeAlpha : MonoBehaviour { 
public Renderer Renderer; 
private Material _material; 

// Use this for initialization 
void Start() { 
    _material = Renderer.material; 
    StartCoroutine("ChangeAlphaSlowly"); 
} 

private IEnumerator ChangeAlphaSlowly() 
{ 
    var increaseAmount = 0f; 
    var _color = new Color(0, 0, 1, 0); 
    for (int i = 0; i < 10; i++)//ten step 
    { 
     increaseAmount += 0.1f; 
     _material.color = new Color(0, 0, 1, increaseAmount);   
     yield return new WaitForSeconds(0.1f); 
    } 

} 

}

+0

即使它在飛機上也不能拍攝 –

+0

您可以使用畫布和畫布組的alpha屬性在相機上顯示/隱藏效果。如果我想通過淡入淡出來顯示和隱藏場景中的所有遊戲對象,我使用這種方式。對不起,我試圖幫助你。 –

0

地形腳本使用內置的默認着色器。這一個不可訪問也不可修改。

Material mat = terrain.materialTemplate; 
Debug.Log(mat==null); // True 

指定自定義着色器僅限於自然着色器,並且沒有提供使用「顏色」。一般來說,地形忽略了着色器的顏色。

Material mat = terrain.materialTemplate; 
    Color c = mat.color; 
    c.a = 0.5f; 
    mat.color = c; 

這將顯示着色器顏色的修改,但不會影響地形本身。

正如你就必須創建自己的着色器,像這樣的http://wiki.unity3d.com/index.php/TerrainTransparency