Member 14993595 Ответов: 1

Как бы я обновил свой менеджер здоровья и слайдер, когда предмет и бафф помещаются в слот equip


я довольно новичок в кодировании я пытаюсь понять как изменить мое значение здоровья и значение слайдера когда я ставлю предмет на который имеет значение баффа

public void OnAddItem(InventorySlot _slot)//equip
    {
        if (_slot.itemObject == null)
            return;
        switch (_slot.parent.inventory.type)
        {
            case InterfaceType.Inventory:

                break;
            case InterfaceType.Equipment:
                // slider.value = healthManager.playerCurrentHealth;//
                print(message: string.Concat("Placed ", _slot.itemObject, " on ", _slot.parent.inventory.type, ", Allowed Items: ", string.Join(", ", _slot.AllowedItems)));
                
                for (int i = 0; i < _slot.item.buffs.Length; i++)
                {
                    for (int j = 0; j < attributes.Length; j++)
                    {
                        if (attributes[j].type == _slot.item.buffs[i].attribute)//if attribute on item is same as on char
                            attributes[j].value.AddModifier(_slot.item.buffs[i]);//take attr on char take value add modifier
                    }
                }


Что я уже пробовал:

я довольно новый, я попробовал slide.value = playerHealthManager, но я думаю, что мне нужно, чтобы значение баффа было где-то там

BillWoodruff

не могу прочитать ваши мысли: что представляет собой значение ползунка ? что означает "ценность здоровья"? "бафф" означает ноль ?

что происходит сейчас, что вызывает ошибку, или что вы считаете ошибкой ?

Member 14993595

нет никакой ошибки.. значение баффа находится на самом предмете, я ставлю минимальное значение и максимальное значение, и когда он оснащен, он выбирает значение между ними.. мое здоровье представляет собой здоровье игрока, но когда предмет экипирован, он фактически не изменяет мое здоровье ... и значение слайдера, очевидно, снова соответствует значению здоровья.

1 Ответов

Рейтинг:
2

Gerry Schmitz

Если у вас есть только один слайдер для одного игрока, отлично подходит "глобальная", то есть статическая ссылка на слайдер. Когда здоровье игрока будет обновлено, обновите ползунок.

class YYY
public static Slider HealthSlider { get { return this.xxxx; } }
...
...
YYY.HealthSlider.Value = ...

Если у вас есть глобальная "коллекция", используйте статику и для этого (например, оружейная палата).

Это одна из ситуаций, когда "глобалы" хороши, и вы должны понять, почему ... таким образом, вы можете защитить себя, когда (большинство) все остальные скажут не делать этого.