核心逻辑:找到第一个空格→判断图标形状(要占用空格以外的哪些额外格)→判断额外格是否被占用→没占用就放下图标预制体并将空格和额外格设为占用状态→被占用就遍历找到下一个空格。
将一个背包分割为若干个格子,记录每个格子左上角的坐标(计为格子的实际坐标),记录每个格子在界面中在第几行第几列(计为格子的表格坐标)。
打开背包时读取背包数据,依次由左到右,由上到下进行遍历,找到第一个没有被占用的表格坐标。
假设这个表格坐标为(0,0),如果你要放入一个只占一格的道具,你就在表格格子实际坐标的位置放置一个道具图标的预制体。
假设你要放入一个武器/防具这种占1x2的图标,就先判断这个表格的下方表格(0,1)是否被占用。如果被占用就继续遍历下一个格子;没有被占用就在(0,0)格子的实际坐标放置你的武器防具图标,并将(0,1)设为已经被占用的状态。
以此类推,你还可以设计3x1、2x2等等各种奇葩形状的道具都可以很简单地实现。
↑
只是一个简单的思路,百度应该能找到更成熟的解决方案。
