forked from cgvr/DeltaVR
FMODi paigaldamine projekti sisse, fmod project created, assets are imported into FMOD; AudioManager and FMODEvents scripts, VR is set up
This commit is contained in:
63
Assets/Plugins/FMOD/src/StudioParameterTrigger.cs
Normal file
63
Assets/Plugins/FMOD/src/StudioParameterTrigger.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace FMODUnity
|
||||
{
|
||||
[Serializable]
|
||||
public class EmitterRef
|
||||
{
|
||||
public StudioEventEmitter Target;
|
||||
public ParamRef[] Params;
|
||||
}
|
||||
|
||||
[AddComponentMenu("FMOD Studio/FMOD Studio Parameter Trigger")]
|
||||
public class StudioParameterTrigger: EventHandler
|
||||
{
|
||||
public EmitterRef[] Emitters;
|
||||
public EmitterGameEvent TriggerEvent;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
for (int i = 0; i < Emitters.Length; i++)
|
||||
{
|
||||
var emitterRef = Emitters[i];
|
||||
if (emitterRef.Target != null && !emitterRef.Target.EventReference.IsNull)
|
||||
{
|
||||
FMOD.Studio.EventDescription eventDesc = RuntimeManager.GetEventDescription(emitterRef.Target.EventReference);
|
||||
if (eventDesc.isValid())
|
||||
{
|
||||
for (int j = 0; j < Emitters[i].Params.Length; j++)
|
||||
{
|
||||
FMOD.Studio.PARAMETER_DESCRIPTION param;
|
||||
eventDesc.getParameterDescriptionByName(emitterRef.Params[j].Name, out param);
|
||||
emitterRef.Params[j].ID = param.id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override void HandleGameEvent(EmitterGameEvent gameEvent)
|
||||
{
|
||||
if (TriggerEvent == gameEvent)
|
||||
{
|
||||
TriggerParameters();
|
||||
}
|
||||
}
|
||||
|
||||
public void TriggerParameters()
|
||||
{
|
||||
for (int i = 0; i < Emitters.Length; i++)
|
||||
{
|
||||
var emitterRef = Emitters[i];
|
||||
if (emitterRef.Target != null && emitterRef.Target.EventInstance.isValid())
|
||||
{
|
||||
for (int j = 0; j < Emitters[i].Params.Length; j++)
|
||||
{
|
||||
emitterRef.Target.EventInstance.setParameterByID(Emitters[i].Params[j].ID, Emitters[i].Params[j].Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user