2015-12-22 71 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