标签:
写在最前面,本文未必适合纯新手,但有一些C#开发经验的还是可以看懂的,虽然本人也是一位Unity3D新人,但是本文只是自己在学习Inventory Pro的学习总结,而不是教程,本人觉得要读懂理解Inventory Pro 2.1.2 这样的插件源码,你还是需有了一部分Unity3D的基础知识。但为什么说你有一定C#开发经验也是能看懂的呢?(有点绕),我想表达的意思是,Unity3D无非是一种技术或者工具,而装备系统是游戏逻辑的一种业务,其实如果侧重点在于业务,技术和工具不是那么重要,希望你能明白这一点。
还有毕竟本人也是新手,对于源码的理解难免有偏差、理解不够透彻的地方,欢迎大家指正和讨论。
本次学习总结的思路大概是从总体到细节的过程,具体是先从装备系统的总体设计,主要功能页,类图结构到最后的关键细节函数实现这个路线。
本来想取一些效果截图,发现在5.2.3版本有些部分有编译错误,就不贴出来了
从类图体系来分,就目前阅读该插件的代码部分,结构划分还是很清晰,命名比较规范,注释也很到位(老外确实不一样),基本是有几个类体系结构
非UI相关InventoryItem 物品体系类,具体如装备,消耗品,商店物品等
UI相关InventoryUIItemWrapper 物品体系
UIWindow体系的窗口类,具体有角色,银行,技能,店铺等窗口
InventoryUIDialog系统下的对话框类,具体有确认框,买卖,通用提示
特殊窗口(非继承体系窗口),如上下菜单,通知窗口等
配置管理
InvertoryManager
ItemManger
数据库操作
应该是一些辅助类,有UI部分的,事件辅助,定义接口等等吧,这部分还没有深入去阅读应该也是挺复杂的
一些第三方插件,Unity3D特性及Edit扩展等等
代码导航图,由于图片大小问题只展开了关键部分的类,感兴趣自己看源码 如下图所示:
具体类图就截取两个充充场面,这里需要注意的由于Unity3D是基于组件开发模式的,有时候可能会出现桥接模式,这样类图如果展现出来会很大,所以这里只是给出了两个比较清晰的继承体系,如下图所示
通读了目前Inventory Pro 2.1.2的源码,对于装备系统有了一个比较直观的了解,大致总结一下
整体来说Inventory Pro 2.1.2,还是做的很全面的,还有Demo,毕竟是收费插件,也算是个小型的系统了,至少是提供了一个可行的装备系统解决方案,本来也看过一些国人分享的装备系统程,往往停留在Unity3D UI那层的学习和使用,其实远没有到一个解决方案的级别,基本是入门而已吧。
如果你对本文感兴趣,觉得对你的工作和学习有点用处可以扫二维码打赏,或者残忍忽略。当然如果你有什么问题或者需要指正的欢迎交流。首发博客园,蛮牛
Unity3D 装备系统学习Inventory Pro 2.1.2 总结
标签:
原文地址:http://www.cnblogs.com/IlidanStormRage/p/5739863.html