按下按钮可在多种材料之间切换

时间:2014-02-05 14:49:24

标签: c# unity3d

在我的Unity项目中按下按钮时,我需要在运行时在两个不同材质之间更改场景中的对象。但是,我以前从未这样做过,而且我有一个问题让我知道如何做到这一点。

在我的场景中,我有一个游戏对象,我称之为控制器。这个脚本包含我的材料切换类,看起来像这样:

public GameObject cupMesh;
bool isOn = true;


// Use this for initialization
void Start () 
{
    cupMesh = GameObject.Find("CupMesh");
}

// Update is called once per frame
void Update () 
{
}

void OnGUI()
{
    if(GUI.Button(new Rect(10,10, 100, 40), "Show mesh"))
    {

        renderer.enabled = false;
    }
}

我知道这不会改变材料,但上面的代码什么也没做。我以前从未修改过网格渲染器上的任何内容,但我知道它上面有一个材料列表。

如何访问该列表,以便我可以在那里找到的两种材料之间切换程序?

1 个答案:

答案 0 :(得分:0)

要显示或隐藏gameObject,而不是使用render.enabled属性,您应该使用:

// Unactivates the game object.
gameObject.SetActive (false);

但是,如果您想要调整脚本附加到的对象的材质或者cupMesh游戏对象,则从代码中不清楚。

如果你想让cupMesh消失,你会使用:

cupMesh.SetActive (false);

或者如果您想访问cupMesh的材质组件,这是

cupMesh.renderer.material