So i’m having a strange issue where i’m using a global parameter to trigger a transition in an event. I have an event playing
with two transitions (one at the start of the timeline and one for most of the timeline)
The first will only occur if the global parameter is between 0.25 and 0.49 (this starts the sample playing back)
The second will only occur if the global parameter is between 0.76 and 1.00 (this plays a different part of the sample)
I’m using the following to set the parameter:
FMODUnity.RuntimeManager.StudioSystem.setParameterByName(NAME, VALUE);
(but I’ve also tried getting the event description and setting the parameter via ID)
The first set to do the transition works (setting the value to 0.26). However a subsequent set does NOT work (setting the value to 0.76)
What’s even stranger is that if i attach the profile and view the graph of the parameter - I can see the value changing there, but the playing event doesn’t seem to react!
What am I doing wrong here?
Okay, this is super wierd. I had another event that was setup with this same system and that one worked, so i rebuilt the event that wasn’t working and… it worked. There might be something here that doesn’t work but I’ll post more when I get a tighter repro
Another related issue: I’m changing the value of this parameter via Command Instruments in FMOD (this appears to be working) and I want to fetch those values in Unity, but fetching the value of the global parameter doesn’t work. Is there a way I can get these to update? (I can see these changing in the profiler)
Okay, I worked out what’s going on with the global parameter issues and some events. It appears that the serialization of floating point values for parameter conditions isn’t super consistent - setting a value of 0.76 in the FMOD studio editor can result in values that are off by a little bit (meaning it might be higher than 0.76 or lower than 0.76 depending on how everything falls out with the serializer.)
This is pretty easy to work around but is probably something worth looking into.
Still would like to have parameter changes done by command instruments grabbable by Unity’s FMODUnity.RuntimeManager.StudioSystem.getParameterByID function! 
Thank you for the detailed post.
I wasn’t able to reproduce this issue. Could I see how the parameter value is being set?
I was able to retrieve the param value set by command instruments:
with:
result = FMODUnity.RuntimeManager.StudioSystem.getParameterByID(parameterID, out float value, out float finalValue);
if (result != FMOD.RESULT.OK)
{
Debug.Log($"Failed to retrieve global param value with: {result}");
}
else
{
globalParamValueText.text = $"Global Param Value is {finalValue}";
}
And I found it was showing the correct value:

Specifically I am using the finalValue and not the value from the function: FMOD Engine | Studio Api System - Studio::System::Getparameterbyname.
Hope this helps!