I just meant that the function may not be very performant so run it only when you interact with the widget. I did not mean that it would’t work in VR or with touch gestures.
You could just stick all the styles in a DataTable/array and let the button fetch the style it needs. I admit that this may be a bad approach if every button in your game is unique but looking at that menu, it seems that they’re all identical. Just a thought.
I had the overly convoluted solution I posted kind of working (each button handling its own gradient transparency). The range mapping function turned out to be the pain in the neck as you need to find out which buttons are currently visible in the scrollbox and how much of the button is visible and then apply the gradient settings. Perhaps you could cut corners and apply the effect to the first and the last visible button only for now (to see if the effect is satisfactory), and never show half-a-button in the menu by implementing a scroll-snap-to-next-button feature. That would remove a bunch of variables from the equation as you only need to worry about 2 buttons at a time and can ignore their relative position.
More on topic, I can tell you what will not work so you do not need to spend time investigating. Custom widgets get ForegroundColor property which can be inherited by their children. This property will simply override children’s colour and transparency. I was hoping to create a Bordered Scrollbox with transparent gradient and have the buttons inherit parent’s gradient. This *unfortunately *works as intended and the only thing that gets inherited is the foreground colour and not the parent’s material. I even tried retrieving it with a function but could not figure it out:
I’d be surprised if the effect you’re looking for could be achieved in blueprints only. You may need to find a C++ wizz happy to implement a custom solution directly in slate → Buttons inheriting material from the parent container.
Last year I tried to implement a custom solution for something similar to the wires the editor is using and gave up quickly, the slate side of things made my head spin and I’m no stranger to coding.
Anyway, I’d love to see a properly working solution to this. Heck, maybe there’s a simple trick I can’t think of.