Initial Parameter Values are not override value of FMOD Studio setting value.
In FMOD Studio, I set the default value to 0.
And, I set the Initial Parameter Values on FMOD Studio Event Emitter Component to 0.5.
When I tryied to Play (By Play Event - Object Enable), The value is set to 0.
But, When I tryied to Play in code (Unity Button Event Register), It works…
How can i fix this? Please help me.
namespace Sound
{
public class FMODParameterSlider : MonoBehaviour
{
[SerializeField] private StudioEventEmitter eventEmitter;
[SerializeField] private Slider slider;
[SerializeField] private string paramName;
[SerializeField] private float paramValue;
public float ParamValue
{
get => paramValue;
set
{
paramValue = value;
eventEmitter.SetParameter(_paramDesc.id, paramValue);
}
}
private EventDescription _eventDesc;
private PARAMETER_DESCRIPTION _paramDesc;
private void Awake()
{
var getEventRes = RuntimeManager.StudioSystem.getEventByID(eventEmitter.EventReference.Guid, out _eventDesc);
if (getEventRes != RESULT.OK)
{
throw new Exception($"Error on get event data ({eventEmitter.EventReference.Path}). Result is {getEventRes}");
}
var getParamRes = _eventDesc.getParameterDescriptionByName(paramName, out _paramDesc);
if (getParamRes != RESULT.OK)
{
throw new Exception($"Error on get parameter data by name ({paramName}). Result is {getParamRes}");
}
ParamValue = _paramDesc.defaultvalue;
Debug.Log($"{paramName}'s Default - {ParamValue} / Minimum - {_paramDesc.minimum} / Maximum - {_paramDesc.maximum}");
slider.value = ParamValue;
slider.onValueChanged.AddListener((value) =>
{
ParamValue = value;
Debug.Log($"{paramName}'s Default - {ParamValue} / Minimum - {_paramDesc.minimum} / Maximum - {_paramDesc.maximum}");
});
}
}
}