Unity3D C#如何设置GUI文本框的内容
答案:1 悬赏:50
解决时间 2021-03-06 10:43
- 提问者网友:未信
- 2021-03-05 19:11
Unity3D C#如何设置GUI文本框的内容
最佳答案
- 二级知识专家网友:举杯邀酒敬孤独
- 2021-03-05 19:44
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,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,这个才是你要赋值的属性
注意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:改变这个组件(脚本)的那个属性值
追问:既然是一样的写法,我错在哪里,为什么说guitext为只读
追答:注意:GameObject.Find("GUI_ZT").guiText.text="";
是text,不是guitext
guitext是自带的组件,里面有一堆属性,你让他如何等于一个字符串,类型都不相同
他有一个属性叫做text,这个才是你要赋值的属性
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |