The nice thing about widgets is that instead of converting information inside them to new variables in the blueprint, is that you can just access the variable from the widget itself.
Instead of making new variables in the blueprint that update when the widget is edited by a user, I just hook each axis's widgets to the functions. Below is the way I decide how much the y-axis rotates.
Some quality of life features- if the Max widget is edited, it'll enable randomization and update the checker accordingly. A reset button resets all widgets via array.
The spinbox widget has a "delta" option built in that's for snapping already! Very convenient for this assignment. Below is how I enable and disable it. The Delta variable is 45 as per assignment requirements.
As both assignments were about rotation, I decided to combine the two in one editor utility widget. I used the Widget Switcher panel and two buttons to switch between the two ui.
The lookat operation, when started, makes selected actors look at the last selected actor. They will continue looking until the stop button is pressed, so the user can see it update in real time.
I am able to use the checkmark state as a way to select between different values instead of multiple branch nodes.