对于以资源管理, 捡垃圾为卖点的游戏而言, 一个 Diablo like 的背包系统会增加很多趣味性. 我们希望支持如下功能: 多格物品; 物品拖动与旋转; 多仓库实例; 可嵌套容器; 系统可拓展(例如拓展成为装备栏, 配方栏).
Asset Store 上有不少成熟的仓库模块, 但鲜有支持上述全部需求的.于是决定参考几个类似的项目自行实现.
咋一看很复杂, 但其实还是老生常谈的 MVC like 结构, 数据与表现分离. 控制器读取 Model(也是存档数据的一部分), 再调用 Unity 进行渲染, 即加载 Prefab 并控制其显示.
具体到仓库系统, 还有 单个仓库->仓库格子->格子上的物品 这层对应关系. 格子的存在是必不可少的, 我们依赖它来快速确定玩家鼠标互动的对象. 存档数据中并不包含格子数据, 但运行时仓库模块会维护格子与物品的对应关系.
实现效果:
参考项目:
UnInventory
Variable Inventory System
暂无关于此日志的评论。