Unity UI框架(二)博主的疑问

这里我用一个简单案例

2个界面

金币界面:

功能:

显示金币数量。

打开购买充值界面。

 

充值界面:

功能:

增加金币数量

关闭自己

 Unity UI框架(二)博主的疑问

 

 

开工:

2个UI脚本 CoinPanel.cs  BuyPanel.cs

Unity UI框架(二)博主的疑问Unity UI框架(二)博主的疑问

一个记录金币脚本

Unity UI框架(二)博主的疑问

 

问题一

UI对象的获取

例如脚本中写了一些变量,如何赋值。

Unity UI框架(二)博主的疑问

方式1

代码获取

start方法中Find

Unity UI框架(二)博主的疑问缺点:

1、手动太繁琐,感觉是重复性工作。(复制粘贴)改改改…… ,但一个游戏按钮、文本、单选框、加起来上百总有吧。岂不是写死。 

2、路径或名称容易写错,然后运行找不到。

3、Unity也要对应去改好名称.

Unity UI框架(二)博主的疑问

4、如果层级变动,代码路径需要重写一遍。

5、一些组件需要一开始隐藏看不到,但是手动隐藏后,又会Find不到。只能先Find一遍,再用代码去关闭。(感觉好蠢)。

Unity UI框架(二)博主的疑问

方式2

手动拖拽

Unity UI框架(二)博主的疑问

缺点:

1、容易拖错,只能细心。

2、容易丢失引用。

     发生于多人开发,自己电脑没事,同事丢完。

     打开别人项目,或者更换版本于源项目版本不一致。

 

问题二

按钮如可添加监听

方式1

start中添加

一种使用匿名函数,一种手动写个函数. 

函数不得起名啊

Unity UI框架(二)博主的疑问

Unity UI框架(二)博主的疑问

 

方式2

在Inspector中使用,使用Unity中自带事件绑定.

Unity UI框架(二)博主的疑问

还有很多方式我就不说了。

个人意见:

更倾向于手动写个函数. 

不管哪一种都可以使用,达到按钮点击目的。

 

 以上都是小问题,可以放一边。

问题三

如何打开一个界面/面板/Panel。

归根结底也是SetActive,显示与隐藏。

方式1、

unity中手动操作,不用写代码。

Unity UI框架(二)博主的疑问

 

方式2、

代码控制。

缺点: 还需要去拖拽。麻烦 

Unity UI框架(二)博主的疑问

Unity UI框架(二)博主的疑问

方式3、

面板做成单例。

Unity UI框架(二)博主的疑问

 

Unity UI框架(二)博主的疑问

看似是不用拖拽了,省事,而且面板就这一个(万一面板会有多个存在呢),写成单例不挺好嘛。

缺点:

这个咋说呢,文章描述不清。

1、会乱用单例。这个脚本用下,那个脚本调用下,不知道理解不。

个人意见:

个人不喜欢这样。

也可能看的文章讲的不要滥用单例。看混了。

 

问题四

数值界面咋更新

感觉这个比较严重吧。

方式很多种,我随便写点。

Unity UI框架(二)博主的疑问

 

Unity UI框架(二)博主的疑问

Unity UI框架(二)博主的疑问

Unity UI框架(二)博主的疑问

 

Unity UI框架(二)博主的疑问

个人意见:

以上各种方式我都感觉不太好。

然后自己改成这种

Unity UI框架(二)博主的疑问

 

Unity UI框架(二)博主的疑问Unity UI框架(二)博主的疑问

但是问题又来了

PlayerInfo一开始是干净的。

Unity UI框架(二)博主的疑问

 

问题先说到这里,不知道理解多少。

总结为2点,

1、界面如何打开关闭。

2、界面互相通讯。数据操作,更新。

 

也可能说的很片面,你感觉这么简单的问题。但是在我看来UI中的学问很大。

 

 凉鞋的QGameFrameWork UI-Kit 、 Siki 的UI框架 还有GitHub上也收藏也一堆,

也看过很多案例。每个各有优缺点吧 。也可能是我学的不精。也看多MVC 知道原理,不会写,理论大师(啊呸)。。。

 

凉鞋的案例至少在我印象中还是很不错的。 推荐哦

可以生成UI脚本。

 管理界面打开关闭

Unity UI框架(二)博主的疑问

发送消息,接受消息。

Unity UI框架(二)博主的疑问

 

这块我看不懂。

Unity UI框架(二)博主的疑问

顺便说下这是我的收藏 希望能给你帮助 

Timor的GitHub收藏

 

如果没有看过我的第一篇博客,建议去看下。

unity框架系列——UI框架(一)

Unity UI框架(二)博主的疑问

 ui中的关系类图就像这张图

界面互相交互,耦合大,乱七八糟。

Unity UI框架(二)博主的疑问

 

 

Unity UI框架(二)博主的疑问

 

 

这篇博客我瞎写,后续会更改。卧槽12点多了  2020年1月31日00点17分。不写了睡觉。