Ejemplo n.º 1
0
 void PlaySound(sound.EmitterGameEvents type, params string[] nameOrTag)
 {
     foreach (var item in soundslist)
     {
         if (item.instance.isValid() == false)
         {
             InitSound(item, true);
         }
         if (item.allParameters.Count > 0)
         {
             foreach (var param in item.allParameters)
             {
                 for (int i = 0; i < param.triggerParam.Count; i++)
                 {
                     if (param.triggerParam[i] == type)
                     {
                         CheckType(true, item, param.triggerParam[i], false, param, i, nameOrTag);
                     }
                 }
             }
         }
         if (!string.IsNullOrEmpty(item.Event))
         {
             for (int i = 0; i < item.triggerEvent.Count; i++)
             {
                 if (item.triggerEvent[i] == type)
                 {
                     CheckType(false, item, item.triggerEvent[i], false, null, i, nameOrTag);
                 }
             }
             if (item.stopTriggerEvent.Count > 0)
             {
                 for (int i = 0; i < item.stopTriggerEvent.Count; i++)
                 {
                     if (item.stop[i])
                     {
                         //Debug.Log("Stop " + type + " Event " + item.Event + " Type Stop " + item.tri);
                         if (item.stopTriggerEvent[i] == type)
                         {
                             CheckType(false, item, item.stopTriggerEvent[i], true, null, i, nameOrTag);
                         }
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 2
0
    /// <summary>
    /// Switch pour determiner le type de trigger
    /// </summary>
    /// <param name="isParam">S'il s'agit d'un param (true) ou un event (false)</param>
    /// <param name="item">Item pour acceder a son instance</param>
    /// <param name="type">Le type du trigger, valable pour parametre ou event</param>
    /// <param name="param">Si isParam true alors renseigner le param a modifie</param>
    /// <param name="index">L'index du paramTrigger pour avoir la value associée</param>
    /// <param name="nameOrTag">Si type trigger alors le nom ou tag de l objet</param>
    void CheckType(bool isParam, sound item, sound.EmitterGameEvents type, bool stop = false, sound.param param = null, int index = 0, params string[] nameOrTag)
    {
        //Debug.Log(item.Event + " Type " + type.ToString());
        switch (type)
        {
        case sound.EmitterGameEvents.None:
            Debug.Log("None");
            return;

        case sound.EmitterGameEvents.customVoid:
            if (isParam)
            {
                if (param.tagNameCol[index] == nameOrTag[0])
                {
                    SetParameter(item.instance, param.paramName, param.valueToChange[index]);
                }
            }
            else
            {
                if (!stop)
                {
                    if (item.tagName[index] == nameOrTag[0])
                    {
                        InitSound(item, false);
                        item.instance.start();
                    }
                }
                else
                {
                    if (item.tagNameExit[index] == nameOrTag[0])
                    {
                        item.instance.stop(FMOD.Studio.STOP_MODE.ALLOWFADEOUT);
                    }
                }
            }
            break;

        case sound.EmitterGameEvents.ObjectStart:
            if (isParam)
            {
                SetParameter(item.instance, param.paramName, param.valueToChange[index]);
            }
            else
            {
                if (!stop)
                {
                    InitSound(item, false);
                    item.instance.start();
                }
                else
                {
                    item.instance.stop(FMOD.Studio.STOP_MODE.ALLOWFADEOUT);
                }
            }
            break;

        case sound.EmitterGameEvents.TriggerEnter:
            if (isParam)
            {
                if (param.tagNameCol[index] == nameOrTag[0] || param.tagNameCol[index] == nameOrTag[1])
                {
                    SetParameter(item.instance, param.paramName, param.valueToChange[index]);
                }
            }
            else
            {
                if (!stop)
                {
                    if (item.tagName[index] == nameOrTag[0] || item.tagName[index] == nameOrTag[1])
                    {
                        InitSound(item, false);
                        item.instance.start();
                    }
                }
                else
                {
                    if (item.tagNameExit[index] == nameOrTag[0] || item.tagNameExit[index] == nameOrTag[1])
                    {
                        item.instance.stop(FMOD.Studio.STOP_MODE.ALLOWFADEOUT);
                    }
                }
            }
            break;

        case sound.EmitterGameEvents.TriggerExit:
            if (isParam)
            {
                if (param.tagNameCol[index] == nameOrTag[0] || param.tagNameCol[index] == nameOrTag[1])
                {
                    SetParameter(item.instance, param.paramName, param.valueToChange[index]);
                }
            }
            else
            {
                if (!stop)
                {
                    if (item.tagName[index] == nameOrTag[0] || item.tagName[index] == nameOrTag[1])
                    {
                        InitSound(item, false);
                        item.instance.start();
                    }
                }
                else
                {
                    if (item.tagNameExit[index] == nameOrTag[0] || item.tagNameExit[index] == nameOrTag[1])
                    {
                        item.instance.stop(FMOD.Studio.STOP_MODE.ALLOWFADEOUT);
                    }
                }
            }
            break;
        }
    }