if(....)//触发弹出对话框的条件,如果条件不 存在,那么下面的对话框不 会出现
{
GUI.Window(0,Rect(200,129,100,100),funcwin,"window");
GUI.Box (Rect (10,10,100,90), "Loader Menu");
GUI.Label (Rect (.....), ......);
if (GUI.Button (Rect (20,40,80,20), "确定"))
{
Application.LoadLevel (1);
//........
}
if (GUI.Button (Rect (20,60,80,20), "退出"))
{
Application.Quit();
//........
}
GUI.Textfield( , , );
//.....
}//
gameobject.find("gui_zt").guitext.text="";
注意gameobject.guitext是一个组件(脚本),他有一个属性叫text,所以要改的不是guitext而是guitext.text
关于该脚本的属性这个问题,首先你要明白unity的组织结构。他是通过场景里的所有物体(gameobject)形成的树状结构,最直观的就说hierarchy面板下的所有物体(gameobject,以下称为go)。即,每个go下面有除了一堆组件(component,或者monobaviour,也称为脚本)外,还有一个或者多个子go。
unity的这种结构和很多主流引擎的结构是相同的,这种结构的好处就是加快搜索效率,从而提高游戏效率。在unity中,形成这个结构的组件就是transform,通过它的parent、root、child等方法就能搜索在这个transform所在的go上的子go或者父go。unity还提供了很多搜索的方法,比如用getcomponent,getcomponent
所以,你的问题的解决方案更详细地就是:
gameobject ui=gameobject.find("gui_zt");
ui.guitext.text="";
推而广之,你要想改变某个组件(脚本)的某个属性,
1:找到那个脚本所在的gameobject
2:通过这个gameobject找到这个组件(脚本)
3:改变这个组件(脚本)的那个属性值