类塔科夫,塔防网格构建
前往我的博客免费查看
这个项目中实现了一个通用背包系统,主要应用于物品管理,可以在多个游戏类型中灵活运用。它的核心功能包含:
- 网格容量系统:类似塔科夫(Tarkov)和生化危机(Resident Evil),通过二维网格管理背包中的物品位置和大小。
实际为三维
- 负重系统:可选加入负重指标,类似绝地求生(PUBG)中的背包容量管理,限制玩家携带物品的总重量。
- 堆叠机制:支持物品堆叠,采用最大堆叠容量和当前容量的逻辑,灵活处理物品的数量管理。
- 预览功能:物品的预览和实际形态分离,允许为同一物品设置不同的模型以提高显示和渲染效率。
- 实例化物品:支持在背包中放置独立的实例化物品,每个物品都有独立的逻辑和行为。
- 通用性和扩展性:系统采用了双层泛型封装,底层框架可以用作塔防、即时战略或模拟经营类游戏的核心物品管理系统。
底层框架构建
底层网格系统构建使用泛型类 GridXY<TGridObject>
,它提供了背包的核心管理功能。以下是该系统的核心实现:
// 泛型,满足扩展需求;
public class GridXY<TGridObject>
{// 定义基本信息大小private int width; private int height; private float cellSize; private Vector3 originPosition; private TGridObject[,] gridArray;// 背包内容管理器,提供物品查询支持private Dictionary<string, int> Bag;public GridXY(******){// 初始化背包}// 提供基础操作public int GetWidth() { return width; } public int GetHeight() { return height; }//.......// 提供底层核心操作// 设置物品public void SetGridObject(int x, int y, TGridObject value) { if (x >= 0 && y >= 0 && x < width && y < height) { gridArray[x, y] = value;}}// 获取物品public TGridObject GetGridObject(int x, int y) { if (x >= 0 && y >= 0 && x < width && y < height) { return gridArray[x, y]; } else {