Unity3D C#如何设置GUI文本框的内容

用的VS2013写的脚本,教程是JS语言,请问C#怎么访问其他物体,比如这个GUITEXT,且改变它的某个属性... 用的VS2013写的脚本,教程是JS语言,请问C#怎么访问其他物体,比如这个GUITEXT,且改变它的某个属性 展开
 我来答
ccggzz123
推荐于2017-12-15 · TA获得超过1268个赞
知道小有建树答主
回答量:692
采纳率:76%
帮助的人:354万
展开全部
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<T>,GetComponentInChildren等很多查询组件的方法。为了更方便地查询,还有全局静态方法如GameObject.Find,GameObject.FindOfType等来支持开发者。
所以,你的问题的解决方案更详细地就是:
GameObject ui=GameObject.Find("GUI_ZT");
ui.guiText.text="";
推而广之,你要想改变某个组件(脚本)的某个属性,
1:找到那个脚本所在的GameObject
2:通过这个GameObject找到这个组件(脚本)
3:改变这个组件(脚本)的那个属性值
追问
既然是一样的写法,我错在哪里,为什么说guitext为只读
追答
注意:GameObject.Find("GUI_ZT").guiText.text="";

是text,不是guitext
guitext是自带的组件,里面有一堆属性,你让他如何等于一个字符串,类型都不相同
他有一个属性叫做text,这个才是你要赋值的属性
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式