SetGameObjectAuxSendValues() public static method

public static SetGameObjectAuxSendValues ( UnityEngine in_gameObjectID, AkAuxSendArray in_aAuxSendValues, uint in_uNumSendValues ) : AKRESULT
in_gameObjectID UnityEngine
in_aAuxSendValues AkAuxSendArray
in_uNumSendValues uint
return AKRESULT
    public void UpdateAuxSend(GameObject gameObject, Vector3 position)
    {
        if (!isDirty)
        {
            return;
        }

        auxSendValues.Reset();
        AddHighestPriorityEnvironmentsFromPortals(position);
        AddHighestPriorityEnvironments(position);

        AkSoundEngine.SetGameObjectAuxSendValues(gameObject, auxSendValues, (uint)auxSendValues.Count());
        isDirty = false;
    }
Ejemplo n.º 2
0
        public void SetEnvironmentBasedOnFloor(int floor)
        {
            AkAuxSendArray aEnvs         = new AkAuxSendArray();
            int            floorAuxIndex = floorAuxMap[floor];

            for (int i = 0; i < auxCount; i++)
            {
                float value = (floorAuxIndex == i) ? 1.0f : 0.0f;
                auxValues[i] = value;
                aEnvs.Add(AkSoundEngine.GetIDFromString(floorAux[i]), value);
            }

            AkSoundEngine.SetGameObjectAuxSendValues(gameObject, aEnvs, (uint)auxCount);
        }
Ejemplo n.º 3
0
 private void UpdateAuxSend()
 {
     if (this.m_envData == null)
     {
         return;
     }
     if (this.m_envData.auxSendValues == null)
     {
         this.m_envData.auxSendValues = new AkAuxSendArray((uint)((this.m_envData.activeEnvironments.Count >= AkEnvironment.MAX_NB_ENVIRONMENTS) ? AkEnvironment.MAX_NB_ENVIRONMENTS : this.m_envData.activeEnvironments.Count));
     }
     else
     {
         this.m_envData.auxSendValues.Reset();
     }
     for (int i = 0; i < this.m_envData.activePortals.Count; i++)
     {
         for (int j = 0; j < this.m_envData.activePortals[i].environments.Length; j++)
         {
             AkEnvironment akEnvironment = this.m_envData.activePortals[i].environments[j];
             if (akEnvironment != null && this.m_envData.activeEnvironments.BinarySearch(akEnvironment, AkEnvironment.s_compareByPriority) < AkEnvironment.MAX_NB_ENVIRONMENTS)
             {
                 this.m_envData.auxSendValues.Add(akEnvironment.GetAuxBusID(), this.m_envData.activePortals[i].GetAuxSendValueForPosition(base.transform.position, j));
             }
         }
     }
     if ((ulong)this.m_envData.auxSendValues.m_Count < (ulong)((long)AkEnvironment.MAX_NB_ENVIRONMENTS) && (ulong)this.m_envData.auxSendValues.m_Count < (ulong)((long)this.m_envData.activeEnvironments.Count))
     {
         List <AkEnvironment> list = new List <AkEnvironment>(this.m_envData.activeEnvironments);
         list.Sort(AkEnvironment.s_compareBySelectionAlgorithm);
         int num = Math.Min(AkEnvironment.MAX_NB_ENVIRONMENTS - (int)this.m_envData.auxSendValues.m_Count, this.m_envData.activeEnvironments.Count - (int)this.m_envData.auxSendValues.m_Count);
         for (int k = 0; k < num; k++)
         {
             if (!this.m_envData.auxSendValues.Contains(list[k].GetAuxBusID()))
             {
                 if (!list[k].isDefault || k == 0)
                 {
                     this.m_envData.auxSendValues.Add(list[k].GetAuxBusID(), list[k].GetAuxSendValueForPosition(base.transform.position));
                     if (list[k].excludeOthers)
                     {
                         break;
                     }
                 }
             }
         }
     }
     AkSoundEngine.SetGameObjectAuxSendValues(base.gameObject, this.m_envData.auxSendValues, this.m_envData.auxSendValues.m_Count);
 }
Ejemplo n.º 4
0
    void UpdateAuxSend()
    {
        if (m_auxSendValues == null)
        {
            m_auxSendValues = new AkAuxSendArray((uint)m_activeAuxSends.Count);
        }
        else
        {
            m_auxSendValues.Reset();
        }

        foreach (AkAuxSend AuxSend in m_activeAuxSends)
        {
            m_auxSendValues.Add(AuxSend.GetAuxBusID(), AuxSend.GetAuxSendValueForPosition(this.transform.Position));
        }

        AkSoundEngine.SetGameObjectAuxSendValues(this.Entity, m_auxSendValues, (uint)m_activeAuxSends.Count);
    }
Ejemplo n.º 5
0
 private void UpdateAuxSend()
 {
     if (this.m_envData.auxSendValues == null)
     {
         this.m_envData.auxSendValues = new AkAuxSendArray((this.m_envData.activeEnvironments.Count >= AkEnvironment.MAX_NB_ENVIRONMENTS) ? ((uint)AkEnvironment.MAX_NB_ENVIRONMENTS) : ((uint)this.m_envData.activeEnvironments.Count));
     }
     else
     {
         this.m_envData.auxSendValues.Reset();
     }
     for (int i = 0; i < this.m_envData.activePortals.Count; i++)
     {
         for (int j = 0; j < 2; j++)
         {
             AkEnvironment item = this.m_envData.activePortals[i].environments[j];
             if ((item != null) && (this.m_envData.activeEnvironments.BinarySearch(item, AkEnvironment.s_compareByPriority) < AkEnvironment.MAX_NB_ENVIRONMENTS))
             {
                 this.m_envData.auxSendValues.Add(item.GetAuxBusID(), this.m_envData.activePortals[i].GetAuxSendValueForPosition(base.transform.position, j));
             }
         }
     }
     if ((this.m_envData.auxSendValues.m_Count < AkEnvironment.MAX_NB_ENVIRONMENTS) && (this.m_envData.auxSendValues.m_Count < this.m_envData.activeEnvironments.Count))
     {
         ListView <AkEnvironment> view = new ListView <AkEnvironment>(this.m_envData.activeEnvironments);
         view.Sort(AkEnvironment.s_compareBySelectionAlgorithm);
         int num3 = Math.Min((int)(AkEnvironment.MAX_NB_ENVIRONMENTS - ((int)this.m_envData.auxSendValues.m_Count)), (int)(this.m_envData.activeEnvironments.Count - ((int)this.m_envData.auxSendValues.m_Count)));
         for (int k = 0; k < num3; k++)
         {
             if (!this.m_envData.auxSendValues.Contains(view[k].GetAuxBusID()) && (!view[k].isDefault || (k == 0)))
             {
                 this.m_envData.auxSendValues.Add(view[k].GetAuxBusID(), view[k].GetAuxSendValueForPosition(base.transform.position));
                 if (view[k].excludeOthers)
                 {
                     break;
                 }
             }
         }
     }
     AkSoundEngine.SetGameObjectAuxSendValues(base.gameObject, this.m_envData.auxSendValues, this.m_envData.auxSendValues.m_Count);
 }
Ejemplo n.º 6
0
    void UpdateAuxSend()
    {
#if UNITY_EDITOR
        if (AkUtilities.IsMigrating)
        {
            return;
        }
#endif

        if (m_envData.auxSendValues == null)
        {
#if UNITY_PS4
            // Workaround for PS4. Marshall.FreeHGlobal crashes the game, so we need to avoid resizing the array.
            // Allocate 4 entries right away to avoid the resize.
            m_envData.auxSendValues = new AkAuxSendArray((uint)AkEnvironment.MAX_NB_ENVIRONMENTS);
#else
            m_envData.auxSendValues = new AkAuxSendArray(m_envData.activeEnvironments.Count < AkEnvironment.MAX_NB_ENVIRONMENTS
                                                                                        ?
                                                         (uint)m_envData.activeEnvironments.Count : (uint)AkEnvironment.MAX_NB_ENVIRONMENTS
                                                         );
#endif
        }
        else
        {
            m_envData.auxSendValues.Reset();
        }


        //we search for MAX_NB_ENVIRONMENTS(4 at this time) environments with the hightest priority that belong to a portal and add them to the auxSendArray
        for (int i = 0; i < m_envData.activePortals.Count; i++)
        {
            for (int j = 0; j < m_envData.activePortals[i].environments.Length; j++)
            {
                AkEnvironment env = m_envData.activePortals[i].environments[j];

                if (env != null)
                {
                    if (m_envData.activeEnvironments.BinarySearch(env, AkEnvironment.s_compareByPriority) < AkEnvironment.MAX_NB_ENVIRONMENTS)
                    {
                        m_envData.auxSendValues.Add(env.GetAuxBusID(), m_envData.activePortals[i].GetAuxSendValueForPosition(transform.position, j));
                    }
                }
            }
        }

        //if we still dont have MAX_NB_ENVIRONMENTS in the auxSendArray, we add the next environments with the hightest priority until we reach MAX_NB_ENVIRONMENTS
        //or run out of environments
        if (m_envData.auxSendValues.m_Count < AkEnvironment.MAX_NB_ENVIRONMENTS && m_envData.auxSendValues.m_Count < m_envData.activeEnvironments.Count)
        {
            //Make a copy of all environments
            List <AkEnvironment> sortedEnvList = new List <AkEnvironment>(m_envData.activeEnvironments);

            //sort the list with the selection algorithm
            sortedEnvList.Sort(AkEnvironment.s_compareBySelectionAlgorithm);

            int environmentsLeft = Math.Min(AkEnvironment.MAX_NB_ENVIRONMENTS - (int)m_envData.auxSendValues.m_Count, m_envData.activeEnvironments.Count - (int)m_envData.auxSendValues.m_Count);

            for (int i = 0; i < environmentsLeft; i++)
            {
                if (!m_envData.auxSendValues.Contains(sortedEnvList[i].GetAuxBusID()))
                {
                    //An environment with the isDefault flag set to true is added only if its the only environment.
                    //Since an environment with the isDefault flag has the lowest priority, it will be at index zero only if there is no other environment
                    if (sortedEnvList[i].isDefault && i != 0)
                    {
                        continue;
                    }

                    m_envData.auxSendValues.Add(sortedEnvList[i].GetAuxBusID(), sortedEnvList[i].GetAuxSendValueForPosition(transform.position));

                    //No other environment can be added after an environment with the excludeOthers flag set to true
                    if (sortedEnvList[i].excludeOthers)
                    {
                        break;
                    }
                }
            }
        }

        AkSoundEngine.SetGameObjectAuxSendValues(gameObject, m_envData.auxSendValues, m_envData.auxSendValues.m_Count);
    }
Ejemplo n.º 7
0
 public void AuxSend(AkAuxSendArray aux, uint count)
 {
     AkSoundEngine.SetGameObjectAuxSendValues(this.Entity, aux, count);
 }