private static bool TryCreateAsset(out T asset)
        {
            asset = CreateInstance <T>();
            var path = Path.assetPath;

            UnityPath.CreateDirectoryInEditor(path);
            AssetDatabase.CreateAsset(asset, path);
            AssetDatabase.SaveAssets();
            return(asset != null);
        }
        private static bool TryCreateAsset(out T asset)
        {
#if UNITY_EDITOR
            asset = CreateInstance <T>();
            var path = Path.assetPath;
            UnityPath.CreateDirectoryInEditor(path);
            UnityEditor.AssetDatabase.CreateAsset(asset, path);
            UnityEditor.AssetDatabase.SaveAssets();
            return(asset != null);
#else
            asset = null;
            return(false);
#endif
        }