コード例 #1
0
        public static void DisableLibstAtPath(string path)
        {
            List <string> files = SA_AssetDatabase.FindAssetsWithExtentions(path);

            for (int i = 0; i < files.Count; i++)
            {
                var filePath = files[i];

                //Make sure this is not a folder
                if (SA_AssetDatabase.IsValidFolder(filePath))
                {
                    continue;
                }

                //Already disabled
                if (SA_AssetDatabase.GetExtension(filePath).Equals(DISABLED_LIB_EXTENSION))
                {
                    continue;
                }

                string newFilePath;
                newFilePath = filePath + DISABLED_LIB_EXTENSION;


                float  progress = (float)(i + 1) / (float)files.Count;
                string fileName = SA_AssetDatabase.GetFileName(newFilePath);
                EditorUtility.DisplayProgressBar("Stan's Assets.", "Packing: " + fileName, progress);
                SA_AssetDatabase.MoveAsset(filePath, newFilePath);
                SA_AssetDatabase.ImportAsset(newFilePath);
            }

            EditorUtility.ClearProgressBar();
        }
コード例 #2
0
        public static void EnableLibsAtPath(string path)
        {
            List <string> files = SA_AssetDatabase.FindAssetsWithExtentions(path);

            for (int i = 0; i < files.Count; i++)
            {
                var file = files[i];
                //Make sure this is not a folder
                if (SA_AssetDatabase.IsValidFolder(file))
                {
                    continue;
                }


                if (SA_AssetDatabase.GetExtension(file).Equals(DISABLED_LIB_EXTENSION))
                {
                    string newFileName = file.Replace(DISABLED_LIB_EXTENSION, string.Empty);

                    string fileName = SA_AssetDatabase.GetFileName(newFileName);

                    float progress = (float)(i + 1) / (float)files.Count;
                    EditorUtility.DisplayProgressBar("Stan's Assets.", "Installing: " + fileName, progress);


                    SA_AssetDatabase.MoveAsset(file, newFileName);
                    SA_AssetDatabase.ImportAsset(newFileName);
                }
            }

            EditorUtility.ClearProgressBar();
        }
コード例 #3
0
        private void ValidateAssets <T>(List <T> assets, string requiredLocation, string requiredExtension) where T : Object
        {
            //Let's make sure we aren't missing assets under requiredLocation
            var assetPaths = SA_AssetDatabase.FindAssetsWithExtentions(requiredLocation, requiredExtension);

            foreach (var assetPath in assetPaths)
            {
                var assetExtension = SA_PathUtil.GetExtension(assetPath);
                if (assetExtension.Equals(requiredExtension))
                {
                    var file = (T)AssetDatabase.LoadAssetAtPath(assetPath, typeof(T));
                    if (!assets.Contains(file))
                    {
                        assets.Add(file);
                        return;
                    }
                }
            }

            for (var i = 0; i < assets.Count; i++)
            {
                var asset = assets[i];
                if (asset == null)
                {
                    //We do not allow null element's unless this is a last element
                    if (i != assets.Count - 1)
                    {
                        assets.Remove(asset);
                        return;
                    }
                    continue;
                }

                if (!HasValidExtension(asset, requiredExtension))
                {
                    EditorGUILayout.HelpBox(asset.name + " need to be in *" + requiredExtension + " format.", MessageType.Error);
                    continue;
                }

                if (!SA_AssetDatabase.IsAssetInsideFolder(asset, requiredLocation))
                {
                    EditorGUILayout.HelpBox(asset.name + " has to be inside: \n" + requiredLocation, MessageType.Error);
                    using (new SA_GuiBeginHorizontal()) {
                        GUILayout.FlexibleSpace();
                        var move = GUILayout.Button("Move", EditorStyles.miniButton);
                        if (move)
                        {
                            var currentPath = AssetDatabase.GetAssetPath(asset);
                            var assetName   = SA_AssetDatabase.GetFileName(currentPath);
                            var newPath     = requiredLocation + assetName;
                            SA_AssetDatabase.MoveAsset(currentPath, newPath);
                        }
                    }
                }
            }
        }