using System; using System.Collections.Generic; using SubAssetsToolbox.Editor; using UnityEditor; using UnityEditor.Animations; using UnityEngine; using UnityEngine.Audio; using UnityEngine.U2D; namespace SubAssetsToolbox.Utilities { public static class ExtensionMap { public static string GetFileExtensionByType(Type t) { if (_extensions.TryGetValue(t, out string ext)) return ext; else { if(!typeof(ScriptableObject).IsAssignableFrom(t)) Debug.LogWarning(Constants.ExtensionDefaultedToAsset); return "asset"; } } private static readonly Dictionary _extensions = new() { // Rendering / Shaders { typeof(Material), "mat" }, { typeof(Shader), "shader" }, { typeof(ComputeShader), "compute" }, { typeof(ShaderVariantCollection), "shadervariants" }, { typeof(LightmapParameters), "giparams" }, { typeof(LightingSettings), "lighting" }, // Animation { typeof(AnimationClip), "anim" }, { typeof(AnimatorController), "controller" }, { typeof(AnimatorOverrideController), "overrideController" }, { typeof(AvatarMask), "mask" }, { typeof(Avatar), "avatar" }, // Physics #if UNITY_6000_0_OR_NEWER { typeof(PhysicsMaterial), "physicsMaterial" }, #else { typeof(PhysicMaterial), "physicMaterial" }, #endif { typeof(PhysicsMaterial2D), "physicsMaterial2D" }, // Audio { typeof(AudioMixer), "mixer" }, // 2D { typeof(SpriteAtlas), "spriteatlas" }, // Textures { typeof(Cubemap), "cubemap" }, { typeof(RenderTexture), "rendertexture" }, // 3D { typeof(Mesh), "mesh" }, { typeof(TerrainLayer), "terrainlayer" }, // GUI { typeof(Font), "fontsettings" }, { typeof(GUISkin), "guiskin" }, // Effects { typeof(Flare), "flare" }, { typeof(LightingDataAsset), "lighting" } }; } }