使用 SO 实现了库存系统,也用 SO 创建了物品,但有必要的是,当玩家拾取它们时,它们必须:a) 如果它们的数量少于最大堆叠值,则进行堆叠; b) 该物品被放置在下一个单元格中,依此类推。出现以下问题
public class Item : ScriptableObject
{
public string Name;
public int stackSize = 0; // Текущее количество в стаке
public int maxStackSize = 10; // Максимальное количество в стаке
public bool CanStack() //проверка для наличия места для след. предмета
{
return stackSize < maxStackSize;
}
public bool NoItems() //проверка на отсут. предмета,
{
return stackSize == 0;
}
}
当“拿起”一个物品时-stackSize++;抛出时分别为StackSize--;如果项目数超过 MaxStackSize,则会发生以下情况
我理解解决方案是以某种方式将每个项目单独存储在特定的单元格中,但我不明白如何做到这一点。如果有人能帮忙,我将非常感激


此处元素可以包含以下属性:
仅显示添加元素
像这样使用它:
也就是说,通过向您的库存中添加 150 根木棒,您将获得 15 个 10 根的插槽。
我当然不是 Unity 专家,这可能不是一个很好的解决方案,它可以写得更好,但我试图使它尽可能简单。