void AWorldSettings::PostRegisterAllComponents() { Super::PostRegisterAllComponents(); UWorld* World = GetWorld(); if (FAudioDevice* AudioDevice = World->GetAudioDevice()) { AudioDevice->SetDefaultAudioSettings(World, DefaultReverbSettings, DefaultAmbientZoneSettings); } }
void APlayerCameraManager::StopAudioFade() { if (GEngine) { UWorld* World = GetWorld(); if (World) { if (FAudioDevice* AudioDevice = World->GetAudioDevice()) { AudioDevice->TransientMasterVolume = 1.0f; } } } }
void APlayerCameraManager::ApplyAudioFade() { if (GEngine) { UWorld* World = GetWorld(); if (World) { if (FAudioDevice* AudioDevice = World->GetAudioDevice()) { AudioDevice->SetTransientMasterVolume(1.0f - FadeAmount); } } } }
void AWorldSettings::PostEditChangeChainProperty(FPropertyChangedChainEvent& PropertyChangedEvent) { Super::PostEditChangeChainProperty(PropertyChangedEvent); const FName MemberPropertyName = PropertyChangedEvent.PropertyChain.GetActiveMemberNode()->GetValue()->GetFName(); if (MemberPropertyName == GET_MEMBER_NAME_CHECKED(AWorldSettings, DefaultReverbSettings) || MemberPropertyName == GET_MEMBER_NAME_CHECKED(AWorldSettings, DefaultAmbientZoneSettings)) { UWorld* World = GetWorld(); if (FAudioDevice* AudioDevice = World->GetAudioDevice()) { AudioDevice->SetDefaultAudioSettings(World, DefaultReverbSettings, DefaultAmbientZoneSettings); } } }
void AAudioVolume::UpdateProxy() const { UWorld* World = GetWorld(); if (FAudioDevice* AudioDevice = World->GetAudioDevice()) { DECLARE_CYCLE_STAT(TEXT("FAudioThreadTask.UpdateAudioVolumeProxy"), STAT_AudioUpdateAudioVolumeProxy, STATGROUP_TaskGraphTasks); FAudioVolumeProxy Proxy(this); FAudioThread::RunCommandOnAudioThread([AudioDevice, Proxy]() { AudioDevice->UpdateAudioVolumeProxy(Proxy); }, GET_STATID(STAT_AudioUpdateAudioVolumeProxy)); } }
void AAudioVolume::RemoveProxy() const { // World will be NULL during exit purge. UWorld* World = GetWorld(); if (World) { if (FAudioDevice* AudioDevice = World->GetAudioDevice()) { DECLARE_CYCLE_STAT(TEXT("FAudioThreadTask.RemoveAudioVolumeProxy"), STAT_AudioRemoveAudioVolumeProxy, STATGROUP_TaskGraphTasks); const uint32 AudioVolumeID = GetUniqueID(); FAudioThread::RunCommandOnAudioThread([AudioDevice, AudioVolumeID]() { AudioDevice->RemoveAudioVolumeProxy(AudioVolumeID); }, GET_STATID(STAT_AudioRemoveAudioVolumeProxy)); } } }
FAudioDevice* UAudioComponent::GetAudioDevice() const { FAudioDevice* AudioDevice = nullptr; if (GEngine) { UWorld* World = GetWorld(); if (World) { AudioDevice = World->GetAudioDevice(); } else { AudioDevice = GEngine->GetMainAudioDevice(); } } return AudioDevice; }
void FJavascriptInGameScene::Destroy() { if (bDestroyed) return; // Stop any audio components playing in this scene if (GEngine) { UWorld* World = GetWorld(); if (World) { if (FAudioDevice* AudioDevice = World->GetAudioDevice()) { AudioDevice->Flush(GetWorld(), false); } } } // Remove all the attached components for (int32 ComponentIndex = 0; ComponentIndex < Components.Num(); ComponentIndex++) { UActorComponent* Component = Components[ComponentIndex]; if (bForceAllUsedMipsResident) { // Remove the mip streaming override on the mesh to be removed UMeshComponent* pMesh = Cast<UMeshComponent>(Component); if (pMesh != NULL) { pMesh->SetTextureForceResidentFlag(false); } } Component->UnregisterComponent(); } if (GEngine) { PreviewWorld->CleanupWorld(); GEngine->DestroyWorldContext(GetWorld()); } bDestroyed = true; }