Инвентарь работает, но проблема с предметами.
Инвентарь реализован с помощью scriptable object
У предмета есть его максимальное количество:
Доски: максимальное количество 32
Топор: максимальное количество 1
При подборе к количеству предмета начисляется его количество: Лежит 5 досок, тогда проверять, если досок у игрока нет, тогда .Add, если есть, тогда к этому элементу листа Items добавлять количество лежащих досок.
Может это можно как то улучшить?
Сейчас:
public static void AddItem(Item _item, int Amount)
{
if(Items.Find(item => item == _item) != null)
{
var item = Items.Find(item => item == _item);
item.Amount += Amount;
}
else // Если нету такого
{
_item.Amount += Amount;
Items.Add(_item);
}
}
Главная проблемa:
Я уже сказал про максимальное количество, так вот. Сейчас есть переменная ограничения есть, но она никак не используется. Список предметов заполняется так:
private void RenderItems()
{
foreach (Transform child in _contaner)
{
Destroy(child.gameObject);
}
Inventory.Items.ForEach(item =>
{
var cell = Instantiate(_inventotyCell, _contaner);
cell.Render(item);
});
}
И как видите сейчас нету ограничений, а нужно так, чтобы если например максимальное количество было 10, а предметов 16, то в первую клетку занести 10, а во вторую 6. А например если максималка 10, а есть 84, то будет 8 по 10 и одна по 4. Думаю смысл понятен. Как это сделать?