Dzień dobry. Przychodzę z dość nietypowym pytaniem. W jaki sposób mogę przekazać wartość zmiennej z jednego widgetu do drugiego?
W swoim projekcie utworzyłem mechanikę sklepu tj. Stworzyłem obiekt Actor (BP_Alice), który pełni rolę sprzedawcy i to w nim są tworzone wszystkie niezbędne „sklepowe” widgety. Po otwarciu sklepu jest tworzony widget WBP_Shop do którego jest dodawane tablica z WBP_ShopSlot (każdy slot zawiera inny indeks i reprezentuje inny przedmiot do kupienia). Po kliknięciu w interesujący nas slot(przedmiot) pojawia się WBP_ShopItemAmount, który odpowiada za ilość przedmiotu jaka nas interesuje. I w tym miejscu pojawia się problem.
Załóżmy, że chce kupić w sklepie 10x eliksir leczniczy. Otwieram sklep, klikam w slot eliksiru i wybieram 10 i kupuje. No i właśnie tutaj pojawia się problem z przesłaniem wartości zmiennej przechowującej ilość danego przedmiotu (struktura w WBP_ShopSlot) do WBP_ShopItemAmount (wyświetla 0). Podchodziłem do tego w różny sposób:
- Próbowałem tworzyć WBP_ShopItemAmount podczas kliknięcia w WBP_ShopSlot
- Próbowałem za pomocą funkcji GetActorOfAclass(BP_Alice)->WBP_ShopSlot->GetSItemStruct()->ItemQuantity
- Próbowałem wreszcie Event Dispatcherów; w WBP_ShopSlot utworzyłem Event Dispatcher, do którego podpiąłem prosty Event, który wyświetla ItemQuantity ze struktury i następnie wywołałem go poprzez referencje w WBP_ShopItemAmount
Niestety żadna z tych prób nie zadziałała, ale wydaje mi się, że mogłaby gdyby użył rzutowania. Niestety nie bardzo wiem co rzutować na co.
Zdaje sobie sprawę, że rozwiązanie problemu może być proste, ale niestety skończyły mi się pomysły. Gdyby ktoś mógł cokolwiek podpowiedzieć jak to ruszyć będę bardzo wdzięczny.
Pozdrawiam