12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- using UnityEngine;
- using UnityEditor;
- namespace OVR
- {
- /*
- -----------------------
- AudioImportPostProcessor()
- -----------------------
- */
- public class AudioImportPostProcessor : AssetPostprocessor {
- static void OnPostprocessAllAssets( string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths ) {
- AudioManager audioManager = AudioManager.Instance;
- if ( audioManager != null ) {
- // find the asset path to the loaded audio manager prefab
- #if UNITY_2018_2_OR_NEWER
- Object prefabObject = PrefabUtility.GetCorrespondingObjectFromSource(audioManager);
- #else
- Object prefabObject = PrefabUtility.GetPrefabParent( audioManager );
- #endif
- if ( prefabObject != null ) {
- string path = AssetDatabase.GetAssetPath( prefabObject );
- // check to see if the AudioManager prefab has been reimported.
- // if so, rebuild everything
- foreach ( string asset in importedAssets ) {
- if ( asset.ToLower() == path.ToLower() ) {
- // in the event the audio manager is selected, deselect it first before reloading
- Debug.Log( "[AudioManager] AudioManager prefab reloaded: " + path );
- Selection.objects = new Object[0] { };
- // unfortunately even saving the audio manager prefab will trigger this action
- //string msg = "The Audio Manager was reloaded. If you are going to be making modifications to the Audio Manager, ";
- //msg += "please verify you have the latest version before proceeding. If in doubt, restart Unity before making modifications.";
- //EditorUtility.DisplayDialog( "Audio Manager Prefab Reloaded", msg, "OK" );
- // do the actual reload
- AudioManager.OnPrefabReimported();
- break;
- }
- }
- }
- }
- }
- }
- } // namespace OVR
|