A game about forced loneliness, made by TACStudios
1#if UNITY_EDITOR 2 3using System; 4using UnityEditor; 5using UnityEngine.InputSystem.Utilities; 6 7namespace UnityEngine.InputSystem.Editor 8{ 9 internal static class BuildProviderHelpers 10 { 11 // Adds the given object to the list of preloaded asset if not already present and 12 // returns the argument given if the object was added to the list or null if already present. 13 public static Object PreProcessSinglePreloadedAsset(Object assetToPreload) 14 { 15 // Avoid including any null asset 16 if (assetToPreload == null) 17 return null; 18 19 // If we operate on temporary object instead of a properly persisted asset, adding that temporary asset 20 // would result in preloadedAssets containing null object "{fileID: 0}". Hence we ignore these. 21 if (EditorUtility.IsPersistent(assetToPreload)) 22 { 23 // Add asset object, if it's not in there already. 24 var preloadedAssets = PlayerSettings.GetPreloadedAssets(); 25 if (preloadedAssets != null && preloadedAssets.IndexOf(assetToPreload) == -1) 26 { 27 ArrayHelpers.Append(ref preloadedAssets, assetToPreload); 28 PlayerSettings.SetPreloadedAssets(preloadedAssets); 29 return assetToPreload; 30 } 31 } 32 33 return null; 34 } 35 36 // Removes the given object from preloaded assets if present. 37 // The object passed as argument if set to null by this function regardless if existing in preloaded 38 // assets or not. 39 public static void PostProcessSinglePreloadedAsset(ref Object assetAddedByThisProvider) 40 { 41 if (assetAddedByThisProvider == null) 42 return; 43 44 // Revert back to original state by removing all object(s) from preloaded assets that was added by this processor. 45 var preloadedAssets = PlayerSettings.GetPreloadedAssets(); 46 while (preloadedAssets != null && preloadedAssets.Length > 0) 47 { 48 var index = Array.IndexOf(preloadedAssets, assetAddedByThisProvider); 49 if (index != -1) 50 { 51 ArrayHelpers.EraseAt(ref preloadedAssets, index); 52 PlayerSettings.SetPreloadedAssets(preloadedAssets); 53 break; 54 } 55 } 56 57 assetAddedByThisProvider = null; 58 } 59 } 60} 61 62#endif // UNITY_EDITOR