public class InventorySystem : MonoBehaviour
{
[SerializeField] private ItemData[] _itemData;
private const float MaxFrameDelta = 1.0f / 30.0f;
private Dictionary<ItemData.ItemId, ItemData> _itemMap = new();
private IEnumerator BuildItemMap()
{
foreach (ItemData item in _itemData)
{
_itemMap[item.ID] = item;
// Build as much of the dictionary as possible before yielding to next frame
if (Time.deltaTime > MaxFrameDelta)
{
yield return null;
}
}
}
}