Answered
0
0

Hi Guys,

I’m doing this code to set a parameter in unity:

FMODUnity.StudioEventEmitter musicEvent;
var target = GameObject.Find(“MyGameObject”);
musicEvent = target.GetComponent<FMODUnity.StudioEventEmitter>();
musicEvent.SetParameter (“War”, 1.0f);

And it’s working well..

What I want is to retrieve the value of this parameter later on.

For example:

if (MyParameter ==1) {
MyCode();
} else {
MyOtherCode();
}

Something like:
FMOD.Studio.ParameterInstance myParameter;
myParameter = musicEvent.GetParameter (“War”);

What’s the best way to do this ??
Thanks

  • You must to post comments
Best Answer
0
0

You are basically on the money.

Create an event.
Create a parameter instance.
You will need to refer to the parameter by name/string.
Then you can call myParameter.setValue or getValue to change the parameter on the fly. Unfortunately the get function of ParameterInstance doesn’t return a value but outputs it to a given variable.

musicEvent = target.GetComponent<FMODUnity.StudioEventEmitter>();
FMOD.Studio.ParameterInstance myParameter;
myParameter = musicEvent.GetParameter (“War”);

myParameter.getValue(out float);
myParameter.setValue(float);

  • Paulo Germano

    Hey Cameron, thanks for your reply.
    The problem is that GetParameter is not a method of the StudioEventEmitter Object. It’s a method of the EventInstance object. :(

  • Cameron Baron

    Sorry, the StudioEventEmitter does have Params which returns an array of FMODUnity.ParamRef you can use the same as a ParameterInstance.
    For example:

    for (int i = 0; i < emitter.Params.Length; i++)
    {
    if (emitter.Params[i].Name == "ParamterName")
    {
    param = emitter.Params[i];
    }
    }
    Debug.Log(param.Value);
    param.Value += 0.1f;

  • You must to post comments
0
0

float x = 1f;

musicEvent.SetParameter (“War”, x);

x is the value that you change, so use x.

  • Paulo Germano

    What I wanted was to avoid using a var just for that. but thanks anyway

  • You must to post comments
Showing 2 results
Your Answer

Please first to submit.