I know that in FMOD Studio, you can set up a loop by using Add Loop Region.
However, if the loop is not set in FMOD Studio, I would like to know how to enable or disable looping directly through Unity code.
Currently, I am playing the sound like this:
I will paste part of the code below.
private FMOD.Studio.EventDescription eventDescription;
if (eventDescription.isValid())
{
instance = GetInstance();
await WaitForChannelGroup(instance);
if (instance.isValid() && is3D)
{
#if UNITY_PHYSICS_EXIST
if (target.GetComponent<Rigidbody>())
{
Rigidbody rigidBody = target.GetComponent<Rigidbody>();
RuntimeManager.AttachInstanceToGameObject(instance, target, rigidBody);
instance.set3DAttributes(RuntimeUtils.To3DAttributes(target, rigidBody));
}
else
#endif
#if UNITY_PHYSICS2D_EXIST
if (target.GetComponent<Rigidbody2D>())
{
var rigidBody2D = target.GetComponent<Rigidbody2D>();
RuntimeManager.AttachInstanceToGameObject(instance, target, rigidBody2D);
instance.set3DAttributes(RuntimeUtils.To3DAttributes(target, rigidBody2D));
}
else
#endif
{
RuntimeManager.AttachInstanceToGameObject(instance, target);
instance.set3DAttributes(RuntimeUtils.To3DAttributes(target));
}
}
if (instance.isValid())
instance.start();
}