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); }
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); }
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; } } } } } }
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; }