示例#1
0
        public bool BeginNewAssetCreation(int instanceID, EndNameEditAction newAssetEndAction, string filePath, Texture2D icon, string newAssetResourceFile)
        {
            string text;

            if (!filePath.StartsWith("assets/", StringComparison.CurrentCultureIgnoreCase))
            {
                text = AssetDatabase.GetUniquePathNameAtSelectedPath(filePath);
            }
            else
            {
                text = AssetDatabase.GenerateUniqueAssetPath(filePath);
            }
            if (!CreateAssetUtility.IsPathDataValid(text))
            {
                Debug.LogErrorFormat("Invalid generated unique path '{0}' (input path '{1}')", new object[]
                {
                    text,
                    filePath
                });
                this.Clear();
                return(false);
            }
            this.m_InstanceID      = instanceID;
            this.m_Path            = text;
            this.m_Icon            = icon;
            this.m_EndAction       = newAssetEndAction;
            this.m_ResourceFile    = newAssetResourceFile;
            Selection.activeObject = EditorUtility.InstanceIDToObject(instanceID);
            return(true);
        }
示例#2
0
        // Selection changes when calling BeginNewAsset if it succeeds
        public bool BeginNewAssetCreation(int instanceID, EndNameEditAction newAssetEndAction, string filePath, Texture2D icon, string newAssetResourceFile)
        {
            //Sanitize input
            string sanitizedFilePath = filePath != null?filePath.ConvertSeparatorsToUnity() : filePath;

            string sanitizedNewAssetResourceFile = newAssetResourceFile != null?newAssetResourceFile.ConvertSeparatorsToUnity() : newAssetResourceFile;

            string uniquePath;

            if (!sanitizedFilePath.StartsWith("assets/", System.StringComparison.CurrentCultureIgnoreCase))
            {
                uniquePath = AssetDatabase.GetUniquePathNameAtSelectedPath(sanitizedFilePath);
            }
            else
            {
                uniquePath = AssetDatabase.GenerateUniqueAssetPath(sanitizedFilePath);
            }

            if (!IsPathDataValid(uniquePath))
            {
                Debug.LogErrorFormat("Invalid generated unique path '{0}' (input path '{1}')", uniquePath, sanitizedFilePath);
                Clear();
                return(false);
            }

            m_InstanceID   = instanceID;
            m_Path         = uniquePath;
            m_Icon         = icon;
            m_EndAction    = newAssetEndAction;
            m_ResourceFile = sanitizedNewAssetResourceFile;

            // Change selection to none or instanceID
            Selection.activeObject = EditorUtility.InstanceIDToObject(instanceID);
            return(true);
        }
示例#3
0
        private static void CreateScriptAsset(string templatePath, string destName)
        {
            if (templatePath.ToLower().Contains("test"))
            {
                string uniquePathNameAtSelectedPath = AssetDatabase.GetUniquePathNameAtSelectedPath(destName);
                if (!uniquePathNameAtSelectedPath.ToLower().Contains("/editor/"))
                {
                    uniquePathNameAtSelectedPath = uniquePathNameAtSelectedPath.Substring(0, (uniquePathNameAtSelectedPath.Length - destName.Length) - 1);
                    string path = Path.Combine(uniquePathNameAtSelectedPath, "Editor");
                    if (!Directory.Exists(path))
                    {
                        AssetDatabase.CreateFolder(uniquePathNameAtSelectedPath, "Editor");
                    }
                    uniquePathNameAtSelectedPath = Path.Combine(path, destName).Replace(@"\", "/");
                }
                destName = uniquePathNameAtSelectedPath;
            }
            Texture2D icon      = null;
            string    extension = Path.GetExtension(destName);

            if (extension != null)
            {
                int num;
                if (< > f__switch$map1F == null)
                {
                    Dictionary <string, int> dictionary = new Dictionary <string, int>(4);
                    dictionary.Add(".js", 0);
                    dictionary.Add(".cs", 1);
                    dictionary.Add(".boo", 2);
                    dictionary.Add(".shader", 3);
示例#4
0
        private static void CreateScriptAsset(string templatePath, string destName)
        {
            string fileName = Path.GetFileName(templatePath);

            if (fileName.ToLower().Contains("editortest") || fileName.ToLower().Contains("editmode"))
            {
                string text = AssetDatabase.GetUniquePathNameAtSelectedPath(destName);
                if (!text.ToLower().Contains("/editor/"))
                {
                    text = text.Substring(0, text.Length - destName.Length - 1);
                    string text2 = Path.Combine(text, "Editor");
                    if (!Directory.Exists(text2))
                    {
                        AssetDatabase.CreateFolder(text, "Editor");
                    }
                    text = Path.Combine(text2, destName);
                    text = text.Replace("\\", "/");
                }
                destName = text;
            }
            string    extension = Path.GetExtension(destName);
            Texture2D icon;

            if (extension != null)
            {
                if (extension == ".js")
                {
                    icon = (EditorGUIUtility.IconContent("js Script Icon").image as Texture2D);
                    goto IL_1AF;
                }
                if (extension == ".cs")
                {
                    icon = (EditorGUIUtility.IconContent("cs Script Icon").image as Texture2D);
                    goto IL_1AF;
                }
                if (extension == ".boo")
                {
                    icon = (EditorGUIUtility.IconContent("boo Script Icon").image as Texture2D);
                    goto IL_1AF;
                }
                if (extension == ".shader")
                {
                    icon = (EditorGUIUtility.IconContent("Shader Icon").image as Texture2D);
                    goto IL_1AF;
                }
                if (extension == ".asmdef")
                {
                    icon = (EditorGUIUtility.IconContent("AssemblyDefinitionAsset Icon").image as Texture2D);
                    goto IL_1AF;
                }
            }
            icon = (EditorGUIUtility.IconContent("TextAsset Icon").image as Texture2D);
IL_1AF:
            ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance <DoCreateScriptAsset>(), destName, icon, templatePath);
        }
示例#5
0
        static void CreateScriptAsset(string templatePath, string destName)
        {
            var templateFilename = Path.GetFileName(templatePath);

            if (templateFilename.ToLower().Contains("editortest") || templateFilename.ToLower().Contains("editmode"))
            {
                var tempPath = AssetDatabase.GetUniquePathNameAtSelectedPath(destName);
                if (!tempPath.ToLower().Contains("/editor/"))
                {
                    tempPath = tempPath.Substring(0, tempPath.Length - destName.Length - 1);
                    var editorDirPath = Path.Combine(tempPath, "Editor");
                    if (!Directory.Exists(editorDirPath))
                    {
                        AssetDatabase.CreateFolder(tempPath, "Editor");
                    }
                    tempPath = Path.Combine(editorDirPath, destName);
                    tempPath = tempPath.Replace("\\", "/");
                }
                destName = tempPath;
            }

            Texture2D icon = null;

            switch (Path.GetExtension(destName))
            {
            case ".js":
                icon = EditorGUIUtility.IconContent("js Script Icon").image as Texture2D;
                break;

            case ".cs":
                icon = EditorGUIUtility.IconContent("cs Script Icon").image as Texture2D;
                break;

            case ".boo":
                icon = EditorGUIUtility.IconContent("boo Script Icon").image as Texture2D;
                break;

            case ".shader":
                icon = EditorGUIUtility.IconContent("Shader Icon").image as Texture2D;
                break;

            case ".asmdef":
                icon = EditorGUIUtility.IconContent("AssemblyDefinitionAsset Icon").image as Texture2D;
                break;

            default:
                icon = EditorGUIUtility.IconContent("TextAsset Icon").image as Texture2D;
                break;
            }
            StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance <DoCreateScriptAsset>(), destName, icon, templatePath);
        }
示例#6
0
 public void BeginNewAssetCreation(int instanceID, EndNameEditAction newAssetEndAction, string pathName, Texture2D icon, string newAssetResourceFile)
 {
     if (!pathName.StartsWith("assets/", StringComparison.CurrentCultureIgnoreCase))
     {
         pathName = AssetDatabase.GetUniquePathNameAtSelectedPath(pathName);
     }
     else
     {
         pathName = AssetDatabase.GenerateUniqueAssetPath(pathName);
     }
     this.m_InstanceID      = instanceID;
     this.m_Path            = pathName;
     this.m_Icon            = icon;
     this.m_EndAction       = newAssetEndAction;
     this.m_ResourceFile    = newAssetResourceFile;
     Selection.activeObject = EditorUtility.InstanceIDToObject(instanceID);
 }
示例#7
0
        private static void CreateScriptAsset(string templatePath, string destName)
        {
            if (Path.GetFileName(templatePath).ToLower().Contains("editortest"))
            {
                string uniquePathNameAtSelectedPath = AssetDatabase.GetUniquePathNameAtSelectedPath(destName);
                if (!uniquePathNameAtSelectedPath.ToLower().Contains("/editor/"))
                {
                    uniquePathNameAtSelectedPath = uniquePathNameAtSelectedPath.Substring(0, (uniquePathNameAtSelectedPath.Length - destName.Length) - 1);
                    string path = Path.Combine(uniquePathNameAtSelectedPath, "Editor");
                    if (!Directory.Exists(path))
                    {
                        AssetDatabase.CreateFolder(uniquePathNameAtSelectedPath, "Editor");
                    }
                    uniquePathNameAtSelectedPath = Path.Combine(path, destName).Replace(@"\", "/");
                }
                destName = uniquePathNameAtSelectedPath;
            }
            Texture2D icon = null;

            switch (Path.GetExtension(destName))
            {
            case ".js":
                icon = EditorGUIUtility.IconContent("js Script Icon").image as Texture2D;
                break;

            case ".cs":
                icon = EditorGUIUtility.IconContent("cs Script Icon").image as Texture2D;
                break;

            case ".boo":
                icon = EditorGUIUtility.IconContent("boo Script Icon").image as Texture2D;
                break;

            case ".shader":
                icon = EditorGUIUtility.IconContent("Shader Icon").image as Texture2D;
                break;

            default:
                icon = EditorGUIUtility.IconContent("TextAsset Icon").image as Texture2D;
                break;
            }
            StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance <DoCreateScriptAsset>(), destName, icon, templatePath);
        }
        private static void CreateScriptAsset(string templatePath, string destName)
        {
            if (Path.GetFileName(templatePath).ToLower().Contains("test"))
            {
                string str1 = AssetDatabase.GetUniquePathNameAtSelectedPath(destName);
                if (!str1.ToLower().Contains("/editor/"))
                {
                    string str2 = str1.Substring(0, str1.Length - destName.Length - 1);
                    string str3 = Path.Combine(str2, "Editor");
                    if (!Directory.Exists(str3))
                    {
                        AssetDatabase.CreateFolder(str2, "Editor");
                    }
                    str1 = Path.Combine(str3, destName).Replace("\\", "/");
                }
                destName = str1;
            }
            string    extension = Path.GetExtension(destName);
            Texture2D image;

            if (extension != null)
            {
                // ISSUE: reference to a compiler-generated field
                if (ProjectWindowUtil.\u003C\u003Ef__switch\u0024map1F == null)
                {
                    // ISSUE: reference to a compiler-generated field
                    ProjectWindowUtil.\u003C\u003Ef__switch\u0024map1F = new Dictionary <string, int>(4)
                    {
                        {
                            ".js",
                            0
                        },
                        {
                            ".cs",
                            1
                        },
                        {
                            ".boo",
                            2
                        },
                        {
                            ".shader",
                            3
                        }
                    };
                }
                int num;
                // ISSUE: reference to a compiler-generated field
                if (ProjectWindowUtil.\u003C\u003Ef__switch\u0024map1F.TryGetValue(extension, out num))
                {
                    switch (num)
                    {
                    case 0:
                        image = EditorGUIUtility.IconContent("js Script Icon").image as Texture2D;
                        goto label_16;

                    case 1:
                        image = EditorGUIUtility.IconContent("cs Script Icon").image as Texture2D;
                        goto label_16;

                    case 2:
                        image = EditorGUIUtility.IconContent("boo Script Icon").image as Texture2D;
                        goto label_16;

                    case 3:
                        image = EditorGUIUtility.IconContent("Shader Icon").image as Texture2D;
                        goto label_16;
                    }
                }
            }
            image = EditorGUIUtility.IconContent("TextAsset Icon").image as Texture2D;
label_16:
            ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, (EndNameEditAction)ScriptableObject.CreateInstance <DoCreateScriptAsset>(), destName, image, templatePath);
        }