注意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:改变这个组件(脚本)的那个属性值
有时候因为代码问题,导致unity编辑器运行时直接崩溃,看不到console输出的log信息。那如何定位造成编辑器崩溃的原因呢?我总结了几种方法
第一,查看编辑器log。unity官方文档-logfiles,写的很清楚。
windows上,编辑器log在c:\users\username\appdata\local\unity\editor\editor.log
mac上,log在~/library/logs/unity/editor.log
然而,从我的使用情况来看,很多时候编辑器崩溃并未在editor.log中生成崩溃信息。那怎么办呢?
第二,build出debug版本的应用,然后运行查看log。
在windows上,应用的appname_data目录下,有一个output_log.txt,记录了详细的log信息。
mac上,log还在~/library/logs/unity/player.log。
ios上,可以直接在xcode控制台看到log。
android上,ddms也有详细的log信息。
第三,针对ios或android app。可以接入腾讯的bugly,在web后台查看应用日志,非常方便。如果不想接bugly sdk,自己注册application.logmessagereceived,然后把日志输出到方便查看的地方也可以,比如我在使用bugly之前会把error和exception级别的log通过http发到我自己搭建的服务器上。
看我眼色不色