public IBonus TakeBonus(BonusCategory category) { if (_bonuses[category].Count <= 0) { _bonuses[category].Push(InstantiateBonus(category)); } IBonus bonus = _bonuses[category].Pop(); bonus.SetOnDisposeAction(DisposeBonus); return(bonus); }