public void OnGUI() { GUILayout.BeginHorizontal("Box"); AkWwiseProjectInfo.GetData().autoPopulateEnabled = GUILayout.Toggle(AkWwiseProjectInfo.GetData().autoPopulateEnabled, "Auto populate"); if (AkWwiseProjectInfo.GetData().autoPopulateEnabled&& WwiseProjectFound) { AkWwiseWWUWatcher.GetInstance().StartWWUWatcher(); } else { AkWwiseWWUWatcher.GetInstance().StopWWUWatcher(); } GUILayout.FlexibleSpace(); if (GUILayout.Button("Refresh Project", GUILayout.Width(200))) { treeView.SaveExpansionStatus(); AkWwiseProjectInfo.Populate(); PopulateTreeview(); } GUILayout.EndHorizontal(); GUILayout.Space(5); treeView.DisplayTreeView(TreeViewControl.DisplayTypes.USE_SCROLL_VIEW); if (GUI.changed && WwiseProjectFound) { EditorUtility.SetDirty(AkWwiseProjectInfo.GetData()); } // TODO: RTP Parameters List }
static void PostImportFunction() { // Do nothing in batch mode string[] arguments = Environment.GetCommandLineArgs(); if (Array.IndexOf(arguments, "-nographics") != -1) { return; } EditorApplication.hierarchyWindowChanged += CheckWwiseGlobalExistance; try { if (!File.Exists(Application.dataPath + Path.DirectorySeparatorChar + WwiseSettings.WwiseSettingsFilename)) { WwiseSetupWizard.Init(); return; } else { WwiseSetupWizard.Settings = WwiseSettings.LoadSettings(); AkWwiseProjectInfo.GetData(); #if !UNITY_5 // Check if there are some new platforms to install. InstallNewPlatforms(); #else if (string.IsNullOrEmpty(AkWwiseProjectInfo.GetData().CurrentPluginConfig)) { AkWwiseProjectInfo.GetData().CurrentPluginConfig = AkPluginActivator.CONFIG_PROFILE; } AkPluginActivator.RefreshPlugins(); #endif } if (!string.IsNullOrEmpty(WwiseSetupWizard.Settings.WwiseProjectPath)) { AkWwisePicker.PopulateTreeview(); if (AkWwiseProjectInfo.GetData().autoPopulateEnabled) { AkWwiseWWUWatcher.GetInstance().StartWWUWatcher(); } } } catch (Exception e) { Debug.Log(e.ToString()); } //Check if a WwiseGlobal object exists in the current scene CheckWwiseGlobalExistance(); // If demo scene, remove file that should only be there on import string filename = Path.Combine(Path.Combine(Path.Combine(Path.Combine(Application.dataPath, "Wwise"), "Editor"), "WwiseSetupWizard"), "AkWwisePopPicker.cs"); if (File.Exists(filename)) { EditorApplication.delayCall += DeletePopPicker; } }
public static AkWwiseWWUWatcher GetInstance() { if (Instance == null) { Instance = new AkWwiseWWUWatcher(); } return(Instance); }
// Perform all necessary steps to use the Wwise Unity integration. bool Setup() { bool NoErrorHappened = true; // 0. Make sure the soundbank directory exists string sbPath = AkUtilities.GetFullPath(Application.streamingAssetsPath, Settings.SoundbankPath); if (!Directory.Exists(sbPath)) { Directory.CreateDirectory(sbPath); } #if !UNITY_5 // 1. Disable built-in audio if (!AkUnitySettingsParser.SetBoolValue("m_DisableAudio", true, "AudioManager")) { EditorUtility.DisplayDialog("Warning", "The Audio settings file format has changed. Please disable built-in audio by going to Project->Project Settings->Audio, and check \"Disable Audio\".", "Ok"); } #endif // 2. Create a "WwiseGlobal" game object and set the AkSoundEngineInitializer and terminator scripts // 3. Set the SoundBank path property on AkSoundEngineInitializer if (!Settings.OldProject) { CreateWwiseGlobalObject(); } // 4. Set the script order of AkInitializer, AkTerminator, AkGameObj, AkBankLoad (before default time), AkAudioListener by changing the .meta file if (!SetAllScriptExecutionOrder()) { EditorUtility.DisplayDialog("Error", "Could not change script exec order!", "Ok"); NoErrorHappened = false; } // 5. Add AkAudioListener component to camera if (!Settings.OldProject) { SetListener(); } // 6. Enable "Run In Background" in PlayerSettings (PlayerSettings.runInbackground property) PlayerSettings.runInBackground = true; #if !UNITY_5 // 7. Install the Profile libraries of the installed platforms. This should actually be a change in the way we build unitypackages. if (!InstallAllPlatformProfilePlugins()) { EditorUtility.DisplayDialog("Error", "Could not install some platform plugins!", "Ok"); NoErrorHappened = false; } #endif // 8. Verify DirectX is installed (windows only) #if UNITY_EDITOR_WIN Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\DirectX\\"); if (key == null) { EditorUtility.DisplayDialog("Warning", "Detected the DirectX End-User Runtime is not installed. You might have issues using the Windows version of the plugin", "Ok"); } #endif // 9. Activate WwiseIDs file generation, and point Wwise to the Assets/Wwise folder // 10. Change the SoundBanks options so it adds Max Radius information in the Wwise project if (!SetSoundbankSettings()) { EditorUtility.DisplayDialog("Warning", "Could not modify Wwise Project to generate the header file!", "Ok"); } // 11. Generate the WwiseIDs.cs file from the .h file // GenerateWwiseIDsCsFile(); // 12. Refresh UI/Settings files. Repaint(); // 13. Make sure the installed SDK matches the one that was build on the machine ValidateVersion(); // 14. Move some files out of the assets folder // todo. // 15. Populate the picker AkWwiseProjectInfo.GetData(); // Load data if (!String.IsNullOrEmpty(Settings.WwiseProjectPath)) { AkWwiseProjectInfo.Populate(); AkWwisePicker.PopulateTreeview(); if (AkWwiseProjectInfo.GetData().autoPopulateEnabled) { AkWwiseWWUWatcher.GetInstance().SetPath(Path.GetDirectoryName(AkUtilities.GetFullPath(Application.dataPath, WwiseSettings.LoadSettings().WwiseProjectPath))); AkWwiseWWUWatcher.GetInstance().StartWWUWatcher(); } } return(NoErrorHappened); }