private void OnDisable() { for (var i = 0; i < roomAwareObjectsEntered.Count; ++i) { roomAwareObjectsEntered[i].ExitedRoom(this); AkRoomAwareManager.RegisterRoomAwareObjectForUpdate(roomAwareObjectsEntered[i]); roomAwareObjectsDetectedWhileDisabled.Add(roomAwareObjectsEntered[i]); } roomAwareObjectsEntered.Clear(); AkRoomManager.RegisterRoomUpdate(this); // in case a geometry was added with the room's ID, remove it if (previousColliderType == typeof(UnityEngine.MeshCollider) || previousColliderType == typeof(UnityEngine.BoxCollider) || previousColliderType == typeof(UnityEngine.SphereCollider) || previousColliderType == typeof(UnityEngine.CapsuleCollider)) { AkSoundEngine.RemoveGeometry(GetID()); } previousColliderType = null; // stop sounds applied to the room game object AkSoundEngine.StopAll(GetID()); RoomCount--; AkSoundEngine.RemoveRoom(GetID()); }
public override void OnEnable() { var roomParams = new AkRoomParams { Up = transform.up, Front = transform.forward, ReverbAuxBus = reverbAuxBus.Id, ReverbLevel = reverbLevel, WallOcclusion = wallOcclusion, RoomGameObj_AuxSendLevelToSelf = roomToneAuxSend, RoomGameObj_KeepRegistered = roomToneEvent.IsValid(), }; RoomCount++; AkSoundEngine.SetRoom(GetID(), roomParams, name); /// In case a room is disabled and re-enabled. AkRoomManager.RegisterRoomUpdate(this); // if objects entered the room while disabled, enter them now for (var i = 0; i < roomAwareObjectsDetectedWhileDisabled.Count; ++i) { AkRoomAwareManager.ObjectEnteredRoom(roomAwareObjectsDetectedWhileDisabled[i], this); } roomAwareObjectsDetectedWhileDisabled.Clear(); base.OnEnable(); }
private void OnDisable() { for (var i = 0; i < roomAwareObjectsEntered.Count; ++i) { roomAwareObjectsEntered[i].ExitedRoom(this); AkRoomAwareManager.RegisterRoomAwareObjectForUpdate(roomAwareObjectsEntered[i]); roomAwareObjectsDetectedWhileDisabled.Add(roomAwareObjectsEntered[i]); } roomAwareObjectsEntered.Clear(); AkRoomManager.RegisterRoomUpdate(this); RoomCount--; AkSoundEngine.RemoveRoom(GetID()); }
public void SetRoom() { ulong geometryID = GetGeometryID(); #if UNITY_EDITOR if (previousUp == transform.up && previousFront == transform.forward && previousReverbAuxBus == reverbAuxBus.Id && previousReverbLevel == reverbLevel && previousTransmissionLoss == transmissionLoss && previousRoomGameObj_AuxSendLevelToSelf == roomToneAuxSend && previousRoomGameObj_KeepRegistered == roomToneEvent.IsValid() && previousGeometryID == geometryID) { return; } #endif var roomParams = new AkRoomParams { Up = transform.up, Front = transform.forward, ReverbAuxBus = reverbAuxBus.Id, ReverbLevel = reverbLevel, TransmissionLoss = transmissionLoss, RoomGameObj_AuxSendLevelToSelf = roomToneAuxSend, RoomGameObj_KeepRegistered = roomToneEvent.IsValid(), }; RoomCount++; AkSoundEngine.SetRoom(GetID(), roomParams, geometryID, name); #if UNITY_EDITOR previousUp = transform.up; previousFront = transform.forward; previousReverbAuxBus = reverbAuxBus.Id; previousReverbLevel = reverbLevel; previousTransmissionLoss = transmissionLoss; previousRoomGameObj_AuxSendLevelToSelf = roomToneAuxSend; previousRoomGameObj_KeepRegistered = roomToneEvent.IsValid(); previousGeometryID = geometryID; #endif /// In case a room is disabled and re-enabled. AkRoomManager.RegisterRoomUpdate(this); }