上一篇讲了怎么使用te框架,本篇主要学习的是UI,一个游戏百分之70%都是UI的展示效果,现在让我们继续打开te官网找到UI部分继续学习。
ui创建以及加载
我们根据文档首先打开命名规则界面,大家第一次看就知道这个是干啥的,你想使用此框架的UI部分就要根据规则命名,例如我创建了一个text,那么根据命名规则就为 m_tmp+xxx,最终命名就是m_tmp测试文字
我们继续往下学习,这一步让我们创建预制体进行动态加载,首先随便创建一些ui,然后创建一个脚本,这个脚本名称必须要和UI父级名称一致
然后选中父级物体右键选中第二个,显示成功后,双击打开创建的脚本 进行粘贴
粘贴后我们的得到了这样的脚本内容,我们加入打印方法,此方法是框架内自带log,也可以使用debug。
下一步让我们加载这个ui,首先打开GameApp脚本,根据官方文档提升,选中编辑器模式,输入神秘代码,
运行后发现 哎怎么回事 咋会报错,,根据报错显示缺少了canvas,那我们尝试在预制体上加入,保存后继续尝试运行。
这个时候发现已经加载成功,然后点击按钮,测试按钮是否能够使用,点击后发现没反应呀,什么情况,看了一下打印台也没有报错呀,让我们找找为啥,首先我们遇到这种情况就要先去看官方文档,如果没有写,再去看看demo里面的ui。
看了一下官方文档没写,那就去查看一些demo的ui,发现demo示例的上面有一个是我们缺少的组件,那我们就给他加上再试一下,加上之后就发现可以点击了
点击后打印出来结果,没用问题,证明ui加载也全部完成可以使用拉,那我们继续测试关闭方法,
在按钮功能上新增关闭方法,然后在点击测试成功,发现已经被销毁成功,那么ui的基础显示出现就完成了。
有的同学就要问了,这个脚本功能太少了呀,我想使用一些UI生命周期函数怎么办,例如出现执行,销毁执行,被创建的时候,被刷新的时候等等…
让我们打开脚本看一下我们继承的这个父类,按下f12进入父类中。
在这个父类脚本里发现了几个虚方法,有关闭的,显示的隐藏的,那么我们就可以继承父类的方法重写一下,在里面加入自己的代码,生命周期内部的循环就让框架来完成。回到我们的脚本来看看有多少个可以重写的方法,输入神秘代码 override 发现里面好多个选项,让我们把他的方法全部列出来
在把鼠标放到方法上的时候会显示这个方法的作用,那就让我们打印一下 看看这些方法的执行顺序
根据代码执行结果在调用显示UI的时候执行顺序为
在调用关闭时执行执行了被销毁的方法,
但是我有个疑问,为什么Close 没有被触发 而是调用OnDestroy,改为HideUI这个方法也没有执行,而是执行OnSetVisible方法,也就是隐藏出现的时候调用一次然后执行OnDestroy。
我们根据调用去看他的父级,在这个父级中他是直接调用了一下UIBase删除方法OnDestroy,然后直接删除了调用者
而HideUI方法也是直接就跳转到了close,那close就直接走了OnDestroy,因为属性被修改了所以也执行了OnSetVisible方法
最后我们得出的结论是调用关闭方法时,想要在关闭的时候执行某些代码,要写在
OnDestroy中,群里问了这个问题,小博君大佬回复。但是为什么那两个方法没使用,我没有深究 ,对于我们小白来说能用就行了 管他呢 有的用就行。
自此UI部分就学习完啦,可以让我们开始制作直接的UI界面咯,在这我要吐槽一下 我看群里大佬好像有一键生成脚本的小功能,et6没有自己手动创建脚本多了会有点累,哈哈哈 原谅我是小白想省事点,也没有大佬写一个。