Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式隐藏/显示地形_C#_Unity3d_Terrain - Fatal编程技术网

C# 以编程方式隐藏/显示地形

C# 以编程方式隐藏/显示地形,c#,unity3d,terrain,C#,Unity3d,Terrain,如何在运行时隐藏/显示地形和其他游戏对象(通过C代码)? 我想以淡入淡出的方式显示/隐藏地形和游戏对象{ public class ChangeAlpha : MonoBehaviour { public Renderer Renderer; private Material _material; // Use this for initialization void Start () { _material = Renderer.material; StartCoroutin

如何在运行时隐藏/显示地形和其他游戏对象(通过C代码)?
我想以淡入淡出的方式显示/隐藏地形和游戏对象{
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);
    }

}
公共服务; 私人材料(u材料),; //用于初始化 无效开始(){ _material=Renderer.material; 开始例行程序(“更改”); } 私有IEnumerator changeAlphaslow() { var增量金额=0f; var_color=新颜色(0,0,1,0); 对于(int i=0;i<10;i++)//十步 { 增加金额+=0.1f; _material.color=新颜色(0,0,1,递增量); 收益率返回新WaitForSeconds(0.1f); } }
}

默认情况下,地形脚本使用内置着色器。此项不可访问,也不可修改

Material mat = terrain.materialTemplate;
Debug.Log(mat==null); // True
指定自定义着色器仅限于“自然”着色器,没有一个着色器提供颜色的使用。通常情况下,地形会忽略着色器的颜色

    Material mat = terrain.materialTemplate;
    Color c = mat.color;
    c.a = 0.5f;  
    mat.color = c;
这将显示着色器颜色中的修改,但不会对地形本身产生影响


因此,您必须创建自己的着色器,如此

要获得“淡入/淡出”样式,您将需要一个着色器。请告诉我们您为什么要这样做,这可能有助于给您一个合适的答案。您使用的是什么材质/着色器?标准?即使不在平面上绘制,也可以使用画布和画布组的alpha属性在相机上显示/隐藏效果。如果我想用淡入淡出stlye显示和隐藏场景中的所有游戏对象,我会使用这种方式。对不起,我想帮你。