[Unity] [自学总结] 组件化思想及简单自制工具组件分享

查看:6199 |回复:449 | 2018-9-4 11:10:50

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 醉酒風 于 2019-4-28 22:44 编辑

[自学总结] 组件化思想及简单自制工具组件分享

Snipaste_2018-09-01_16-36-14.jpg


1.为什么要有组件化思想:        楼主认为,组件就是能够满足一定功能的能够挂在到对象上面的控件,就比如unity自己封装的Transform组件、Renderer组件等,其实都是满足了一定功能的,而且组件与组件之间的联系很低,这也就是所谓的“高内聚,低耦合”。
2.如何实现组件化:
        想要实现组件化,首先你要明确自己要做怎么的组件,它能够满足什么功能,它里面需要包含哪些数据等,当你清楚了,你就可以开始去写,写的过程中也可能需要写多个类来控制,但是要遵守一点,那就是你挂载到对象上的脚本只能是一个,就比如Transform组件中包含Vector3的类,却不需要挂载一样的道理;
        想要写好一个组件,那就需要充分的了解这个组件的所有可能性,以下面我自己写的一个UI工具组件为例:
我的需求是:
1、点击按钮保持选中状态图标,
2、选中状态文字会改变颜色,可以保持,
3、高亮状态,文字颜色改变,
4、点击完毕能够保持状态或不保持状态。
制作这个组件需要考虑:
1、Img加文本式btn
2、RawImg加文本式btn
3、仅Text式Btn
4、仅Img式Btn
5、仅RawImg式Btn
        常见的Btn也就这几种了,还有一些其他比较特殊的Btn类型,反正笔者从未用过,所以不在考虑范围内,也不作为组件考虑范围内,毕竟组件也是够用就行,太过复杂就会使得脚本过于臃肿,反而影响效率。
        好了,废话不多说,开始上代码
尊敬的游客,如果您要查看本帖关注 或 回复可见内容请关注回复后刷新页面查看!


代码其实是比较简单的,就是定义好变量,初始化阶段通过拖拽好的3类型Btn图标,将第四种图标设置为nomalSprite,然后选中时,改变图标为选中图标,并释放UI选中(此部不可省略,原因是你选中时,对其失活后,UGUI内部仍处于悬浮状态,此时改变图标后可能会与此冲突,而显示悬浮图标),取消选中时,更改为第四种状态的Btn图标,这就是楼主的思路了,相对来说脚本的实现是相当简单了,就这样轻松的满足了需求。
      考虑其组件化的意义,本来我的按钮事件完全可以以用自己模拟NGUI封装的监听脚本,通过UIListener.Get的方式来注册,但是毕竟是要当做一个组件来用的,就必须要减少与其他脚本的关联,所以就改为了UGUI自带的那么那么长的接口,虽然我也是非常的不愿意,但是没有办法,毕竟代码优化重要,其中还有好几点是可以优化的地方,但是楼主也是比较懒的人,就懒得再优化了,喜欢的可以优化一下。



        如果有更好的意见,欢迎在在下方回复栏里留言,让我们一起学习,一起进步。

评分

参与人数 1元素币 +1 活跃度 +8 展开 理由
雾切酱 + 1 + 8 结合些图文来补充说明也许会更好

查看全部评分

2018-9-4 11:10:50  
 赞 赞 1

使用道具 登录

449个回答,把该问题分享到群,邀请大神一起回答。
2#
不错
回复 收起回复
2018-9-6 14:13:53   回复
 赞 赞 0

使用道具 登录

3#
12
回复 收起回复
2018-9-19 15:36:35   回复
 赞 赞 0

使用道具 登录

4#
值得学习
回复 收起回复
2018-9-28 11:53:28   回复
 赞 赞 0

使用道具 登录

5#
RappaTools3
回复 收起回复
2018-9-28 15:51:47   回复
 赞 赞 0

使用道具 登录

6#
看看
回复 收起回复
2018-9-28 16:53:12   回复
 赞 赞 0

使用道具 登录

7#
放个截图就更好了
回复 收起回复
2018-10-10 09:08:48   回复
 赞 赞 0

使用道具 登录

8#


元素那么大,我想来看看!
回复 收起回复
2018-10-14 18:13:22   回复
 赞 赞 0

使用道具 登录

9#
非常棒的资源,喜欢这里!
回复 收起回复
2018-10-14 18:29:00   回复
 赞 赞 0

使用道具 登录

10#

非常棒的资源,喜欢这里!
回复 收起回复
2018-10-14 18:44:32   回复
 赞 赞 0

使用道具 登录

11#
非常棒的资源,喜欢这里!
回复 收起回复
2018-10-14 19:33:47   回复
 赞 赞 0

使用道具 登录

12#
Unity游戏资源素材2017年5月合辑第一季拆分】unity调色包- Color Grading后处理
回复 收起回复
2018-10-14 19:37:44   回复
 赞 赞 0

使用道具 登录

13#
回复 收起回复
2018-10-14 20:22:25   回复
 赞 赞 0

使用道具 登录

14#
每天一早上元素,挖矿撩妹两不误!
回复 收起回复
2018-10-14 21:29:59   回复
 赞 赞 0

使用道具 登录

15#
哇,这思维可以的
回复 收起回复
2018-10-15 09:26:55   回复
 赞 赞 0

使用道具 登录

16#
666666
回复 收起回复
2018-10-15 09:27:33   回复
 赞 赞 0

使用道具 登录

17#
谢谢提供的资源
回复 收起回复
2018-10-15 09:29:00   回复
 赞 赞 0

使用道具 登录

18#
难得一见的绝世好贴!
回复 收起回复
2018-10-15 09:35:48   回复
 赞 赞 0

使用道具 登录

19#
非常好的教程
回复 收起回复
2018-10-15 10:35:38   回复
 赞 赞 0

使用道具 登录

20#


首发必需微元素,荣耀加身装备酷!
回复 收起回复
2018-10-15 10:37:55   回复
 赞 赞 0

使用道具 登录

CG 游戏行业专业问题

Unity3D技术手机游戏引擎手游引擎
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表