Unity UI框架(二)博主的疑问
这里我用一个简单案例
2个界面
金币界面:
功能:
显示金币数量。
打开购买充值界面。
充值界面:
功能:
增加金币数量
关闭自己
开工:
2个UI脚本 CoinPanel.cs BuyPanel.cs
一个记录金币脚本
问题一
UI对象的获取
例如脚本中写了一些变量,如何赋值。
方式1
代码获取
start方法中Find
缺点:
1、手动太繁琐,感觉是重复性工作。(复制粘贴)改改改…… ,但一个游戏按钮、文本、单选框、加起来上百总有吧。岂不是写死。
2、路径或名称容易写错,然后运行找不到。
3、Unity也要对应去改好名称.
4、如果层级变动,代码路径需要重写一遍。
5、一些组件需要一开始隐藏看不到,但是手动隐藏后,又会Find不到。只能先Find一遍,再用代码去关闭。(感觉好蠢)。
方式2
手动拖拽
缺点:
1、容易拖错,只能细心。
2、容易丢失引用。
发生于多人开发,自己电脑没事,同事丢完。
打开别人项目,或者更换版本于源项目版本不一致。
问题二
按钮如可添加监听
方式1
start中添加
一种使用匿名函数,一种手动写个函数.
函数不得起名啊
方式2
在Inspector中使用,使用Unity中自带事件绑定.
还有很多方式我就不说了。
个人意见:
更倾向于手动写个函数.
不管哪一种都可以使用,达到按钮点击目的。
以上都是小问题,可以放一边。
问题三
如何打开一个界面/面板/Panel。
归根结底也是SetActive,显示与隐藏。
方式1、
unity中手动操作,不用写代码。
方式2、
代码控制。
缺点: 还需要去拖拽。麻烦
方式3、
面板做成单例。
看似是不用拖拽了,省事,而且面板就这一个(万一面板会有多个存在呢),写成单例不挺好嘛。
缺点:
这个咋说呢,文章描述不清。
1、会乱用单例。这个脚本用下,那个脚本调用下,不知道理解不。
个人意见:
个人不喜欢这样。
也可能看的文章讲的不要滥用单例。看混了。
问题四
数值界面咋更新
感觉这个比较严重吧。
方式很多种,我随便写点。
个人意见:
以上各种方式我都感觉不太好。
然后自己改成这种
但是问题又来了
PlayerInfo一开始是干净的。
问题先说到这里,不知道理解多少。
总结为2点,
1、界面如何打开关闭。
2、界面互相通讯。数据操作,更新。
也可能说的很片面,你感觉这么简单的问题。但是在我看来UI中的学问很大。
凉鞋的QGameFrameWork UI-Kit 、 Siki 的UI框架 还有GitHub上也收藏也一堆,
也看过很多案例。每个各有优缺点吧 。也可能是我学的不精。也看多MVC 知道原理,不会写,理论大师(啊呸)。。。
凉鞋的案例至少在我印象中还是很不错的。 推荐哦
可以生成UI脚本。
管理界面打开关闭
发送消息,接受消息。
这块我看不懂。
顺便说下这是我的收藏 希望能给你帮助
如果没有看过我的第一篇博客,建议去看下。
ui中的关系类图就像这张图
界面互相交互,耦合大,乱七八糟。
这篇博客我瞎写,后续会更改。卧槽12点多了 2020年1月31日00点17分。不写了睡觉。