在我的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;
}
}
我知道这不会改变材料,但上面的代码什么也没做。我以前从未修改过网格渲染器上的任何内容,但我知道它上面有一个材料列表。
如何访问该列表,以便我可以在那里找到的两种材料之间切换程序?
答案 0 :(得分:0)
要显示或隐藏gameObject,而不是使用render.enabled属性,您应该使用:
// Unactivates the game object.
gameObject.SetActive (false);
但是,如果您想要调整脚本附加到的对象的材质或者cupMesh游戏对象,则从代码中不清楚。
如果你想让cupMesh消失,你会使用:
cupMesh.SetActive (false);
或者如果您想访问cupMesh的材质组件,这是
cupMesh.renderer.material