I'm making this post so it's public and maybe it'll help the RainyRizzle team improve AnyPortrait if they can see how their tool is being used!
Be warned though, my code isn't commented, so hopefully the method name is descriptive enough.
APHelper is a helper script that I use to help myself quickly get values from control parameters and make useful calculations that aren't public methods in AnyPortrait. I also don't differentiate between Int, Float, and Vector2 Control Parameter types, because it's incredibly tedious code-wise to worry about the type when you just want to simply get the value.
Separating the functionality into X and Y instead of Int, Float, and Vector2 made it simpler, for me personally, to implement the following script:
The top portion of the code isn't important to the discussion. Please ignore the #region named MeshInteract. Within the #region ControlParam, thanks to APHelper, I was able to just boil down to only four simple methods relevant to AnyPortrait's Control Parameters.
I only need to hook up ParamController.cs to a GameObject, give it the relevant ApPortrait.cs, and Control Parameter name. After that you can just call that ParamController.cs and call Up, Down, Left, Right without having to worry about value types and such.
I don't know if AnyPortrait's Control Parameters only use one primitive type underneath the hood, but if it does have three different primitive types then it is overly complex. I'm ignorant of the backend AnyPortrait but I do think that having a unified type will not only be easier on the user but also be easier for the developers at RainyRizzle.
It's just my opinion and if anyone has any feedback for a better way I could've handled my functions, please do tell, I'm very interested in hearing it.