Hello, first post here!
Getting to know the Unity Mixer, I noticed that exposing send levels isn’t working as I expected.
I have multiple Sends set up in the mixer, and when ever I try to expose the Send level of any one of these (using the Inspector, right click on the Send level parameter, then “Expose Send (of Atmos1) to script”, for example), it exposes ALL send levels in the mixer in one go. This also marks them all with the little arrow that indicates the parameter having been exposed.
Only one entry is added to the Exposed Parameters list, and I’m unable to expose any other Send level parameters, for any other Send, no matter where they are located in the mixer and what is receiving them - as now they all just say “Unexpose” when right clicked. If I choose to unexpose any Send level in this manner, no matter which one, it unexposes them all and removes the single Exposed Parameters list entry.
Exposing any other parameter that I’ve tested in this manner, even ones that are sharing a name (like individually exposing the “Cutoff freq” of a handful of Lowpasses in the mixer) works as expected: they are treated individually, get one entry in the parameters list each, and can be unexposed one by one.
I’m on Unity 2019.2.16f1, Windows 10. Thanks for any insight on this!
Edit: I missed an error message, and it seems to be exactly this issue: Unity Issue Tracker - "Assertion failed on expression" error is thrown when Audio Group's "Send level" variable of "Send" effect is exposed
As I posted in the comments of that issue: in order to have “real” send level control from code, using exposed mixer parameters, I guess one could first insert a stationary always-on-100%-send that sends into a separate dummy track, then expose the attenuation parameter on that extra track - and then, in turn, send downstream from there into the actual desired send target. Control the exposed attenuation parameter from code to effectively get dynamic send level control. It does get a bit messy if you have a lot of groups and stuff to send, but at least it works for now.