forked from cgvr/DeltaVR
		
	
		
			
				
	
	
		
			85 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
//#if UNITY_EDITOR
 | 
						|
//using FishNet.Managing.Object;
 | 
						|
//using FishNet.Object;
 | 
						|
//using UnityEditor;
 | 
						|
//using UnityEngine;
 | 
						|
 | 
						|
//namespace FishNet.Editing
 | 
						|
//{
 | 
						|
//    internal class PrefabProcessor : AssetPostprocessor
 | 
						|
//    {
 | 
						|
//        #region Private.   
 | 
						|
//        /// <summary>
 | 
						|
//        /// ScriptableObject to store default prefabs.
 | 
						|
//        /// </summary>
 | 
						|
//        private static DefaultPrefabObjects _defaultPrefabs;
 | 
						|
//        #endregion
 | 
						|
 | 
						|
//        /// <summary>
 | 
						|
//        /// Called after assets are created or imported.
 | 
						|
//        /// </summary>
 | 
						|
//        /// <param name="importedAssets"></param>
 | 
						|
//        /// <param name="deletedAssets"></param>
 | 
						|
//        /// <param name="movedAssets"></param>
 | 
						|
//        /// <param name="movedFromAssetPaths"></param>
 | 
						|
//#if UNITY_2021_3_OR_NEWER
 | 
						|
//        private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths, bool didDomainReload)
 | 
						|
//#else
 | 
						|
//        private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths)
 | 
						|
//#endif
 | 
						|
//        {
 | 
						|
 | 
						|
//#if UNITY_2021_3_OR_NEWER
 | 
						|
//            if (didDomainReload)
 | 
						|
//                return;
 | 
						|
//#endif
 | 
						|
//            bool justPopulated;
 | 
						|
//            if (_defaultPrefabs == null)
 | 
						|
//                _defaultPrefabs = DefaultPrefabsFinder.GetDefaultPrefabsFile(out justPopulated);
 | 
						|
//            else
 | 
						|
//                justPopulated = DefaultPrefabsFinder.PopulateDefaultPrefabs();
 | 
						|
//            //Not found.
 | 
						|
//            if (_defaultPrefabs == null)
 | 
						|
//                return;
 | 
						|
 | 
						|
//            //True if null must be removed as well.
 | 
						|
//            bool removeNull = (deletedAssets.Length > 0 || movedAssets.Length > 0 || movedFromAssetPaths.Length > 0);
 | 
						|
//            if (removeNull)
 | 
						|
//                _defaultPrefabs.RemoveNull();
 | 
						|
 | 
						|
//            /* Only need to add new prefabs if not justPopulated.
 | 
						|
//            * justPopulated would have already picked up the new prefabs. */
 | 
						|
//            if (justPopulated)
 | 
						|
//                return;
 | 
						|
 | 
						|
//            System.Type goType = typeof(UnityEngine.GameObject);
 | 
						|
//            foreach (string item in importedAssets)
 | 
						|
//            {
 | 
						|
//                System.Type assetType = AssetDatabase.GetMainAssetTypeAtPath(item);
 | 
						|
//                if (assetType != goType)
 | 
						|
//                    continue;
 | 
						|
 | 
						|
//                GameObject go = (GameObject)AssetDatabase.LoadAssetAtPath(item, typeof(GameObject));
 | 
						|
//                //If is a gameobject.
 | 
						|
//                if (go != null)
 | 
						|
//                {
 | 
						|
 | 
						|
//                    NetworkObject nob;
 | 
						|
//                    //Not a network object.
 | 
						|
//                    if (!go.TryGetComponent<NetworkObject>(out nob))
 | 
						|
//                        continue;
 | 
						|
 | 
						|
//                    /* Check for duplicates because adding a component to a prefab will also call this function
 | 
						|
//                     * which will result in this function calling multiple times for the same object. */
 | 
						|
//                    _defaultPrefabs.AddObject(nob, true);
 | 
						|
//                }
 | 
						|
//            }
 | 
						|
 | 
						|
//            EditorUtility.SetDirty(_defaultPrefabs);
 | 
						|
//        }
 | 
						|
 | 
						|
//    }
 | 
						|
 | 
						|
//}
 | 
						|
 | 
						|
//#endif |