string GetEnvironmentName(AkEnvironment in_env)
    {
        for (int i = 0; i < AkWwiseProjectInfo.GetData().AuxBusWwu.Count; i++)
        {
            for (int j = 0; j < AkWwiseProjectInfo.GetData().AuxBusWwu[i].List.Count; j++)
            {
                if (in_env.GetAuxBusID() == (uint)AkWwiseProjectInfo.GetData().AuxBusWwu[i].List[j].ID)
                {
                    return(AkWwiseProjectInfo.GetData().AuxBusWwu[i].List[j].Name);
                }
            }
        }

        return(String.Empty);
    }
Esempio n. 2
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);
 }
Esempio n. 3
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);
 }
    private void AddHighestPriorityEnvironments(Vector3 position)
    {
        if (!auxSendValues.isFull && auxSendValues.Count() < activeEnvironments.Count)
        {
            for (int i = 0; i < activeEnvironments.Count; i++)
            {
                AkEnvironment env      = activeEnvironments[i];
                uint          auxBusID = env.GetAuxBusID();

                if ((!env.isDefault || i == 0) && !auxSendValues.Contains(auxBusID))
                {
                    auxSendValues.Add(auxBusID, env.GetAuxSendValueForPosition(position));

                    //No other environment can be added after an environment with the excludeOthers flag set to true
                    if (env.excludeOthers || auxSendValues.isFull)
                    {
                        break;
                    }
                }
            }
        }
    }
 private void AddHighestPriorityEnvironmentsFromPortals(Vector3 position)
 {
     for (int i = 0; i < activePortals.Count; i++)
     {
         for (int j = 0; j < AkEnvironmentPortal.MAX_ENVIRONMENTS_PER_PORTAL; j++)
         {
             AkEnvironment env = activePortals[i].environments[j];
             if (env != null)
             {
                 int index = activeEnvironmentsFromPortals.BinarySearch(env, AkEnvironment.s_compareByPriority);
                 if (index >= 0 && index < AkEnvironment.MAX_NB_ENVIRONMENTS)
                 {
                     auxSendValues.Add(env.GetAuxBusID(), activePortals[i].GetAuxSendValueForPosition(position, j));
                     if (auxSendValues.isFull)
                     {
                         return;
                     }
                 }
             }
         }
     }
 }
Esempio 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);
    }
    string GetEnvironmentName(AkEnvironment in_env)
    {
        for(int i = 0; i < AkWwiseProjectInfo.GetData().AuxBusWwu.Count; i++)
        {
            for(int j = 0; j < AkWwiseProjectInfo.GetData().AuxBusWwu[i].List.Count; j++)
            {
                if(in_env.GetAuxBusID() == (uint)AkWwiseProjectInfo.GetData().AuxBusWwu[i].List[j].ID)
                {
                    return AkWwiseProjectInfo.GetData().AuxBusWwu[i].List[j].Name;
                }
            }
        }

        return String.Empty;
    }