Ejemplo n.º 1
0
        private void OnGUI()
        {
            EditorGUILayout.Space();
            GUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Path:", GUILayout.MinWidth(50), GUILayout.MaxWidth(60));
            m_path = EditorGUILayout.TextField(m_path, GUILayout.MinWidth(400));
            EditorGUIUtility.labelWidth = 70;
            m_isRecursive = EditorGUILayout.Toggle("Recursive", m_isRecursive, GUILayout.MinWidth(80));
            EditorGUILayout.LabelField("NameFilter:", GUILayout.MinWidth(80), GUILayout.MaxWidth(90));
            m_filter = EditorGUILayout.TextField(m_filter, GUILayout.MinWidth(150));

            if (GUILayout.Button("Save", GUILayout.MinWidth(100)))
            {
                SaveCurSelectData();
            }
            if (GUILayout.Button("Delete", GUILayout.MinWidth(100)))
            {
                TextureImportDataManager.Instance.Delete(SelectedIndex);
            }
            if (GUILayout.Button("New Data", GUILayout.MinWidth(100)))
            {
                TextureImportData data = NewData();
                TextureImportDataManager.Instance.DataList.Add(data);
                TextureImportDataManager.Save();
                SelectedIndex = data.Index;
            }
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            EditorGUIUtility.labelWidth = 100;
            m_textureTypeSelected       = EditorGUILayout.Popup("TextureType", m_textureTypeSelected, m_textureType);
            GUILayout.Space(100);
            m_alphaSrcSelected          = EditorGUILayout.Popup("AlphaSource", m_alphaSrcSelected, m_alphaSrc);
            EditorGUIUtility.labelWidth = 50;
            GUILayout.Space(100);
            m_androidFormatSelected = EditorGUILayout.Popup("Android", m_androidFormatSelected, m_androidFormats);
            GUILayout.Space(50);
            m_iosFormatSelected = EditorGUILayout.Popup("Ios", m_iosFormatSelected, m_iosFormats);
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            m_mipmap                    = EditorGUILayout.ToggleLeft("Mipmap", m_mipmap, GUILayout.MinWidth(100));
            m_readWriteEnable           = EditorGUILayout.ToggleLeft("ReadWriteEnable", m_readWriteEnable, GUILayout.MinWidth(150));
            EditorGUIUtility.labelWidth = 60;
            m_index = EditorGUILayout.IntField("Priority", m_index, GUILayout.MinWidth(100));
            GUILayout.Space(50);
            m_maxSize = EditorGUILayout.IntField("MaxSize", m_maxSize, GUILayout.MinWidth(100));
            GUILayout.EndHorizontal();

            int height             = (TextureImportDataManager.Instance.DataList.Count + 1) * 20;
            TextureImportData rule = TextureImportDataManager.Instance.GetRule(m_selectedIndex);

            string[] guids = null;
            if (null != rule)
            {
                guids   = AssetDatabase.FindAssets("t:Texture", new string[] { rule.AssetPath });
                height += (guids.Length + 1) * 20;
            }

            m_scrollPosition = GUI.BeginScrollView(new Rect(0, 60, position.width, position.height - 60), m_scrollPosition, new Rect(0, 0, 1000, height));
            GUILayout.BeginHorizontal();
            GUILayout.Label("AssetPath", EditorStyles.label, GUILayout.MinWidth(250));
            GUILayout.Label("FileFilter", EditorStyles.label, GUILayout.MinWidth(120));
            GUILayout.Label("Priority", EditorStyles.label, GUILayout.MinWidth(85));
            GUILayout.Label("AlphaSource", EditorStyles.label, GUILayout.MinWidth(85));
            GUILayout.Label("TextureType", EditorStyles.label, GUILayout.MinWidth(85));
            GUILayout.Label("Mipmap", EditorStyles.label, GUILayout.MinWidth(85));
            GUILayout.Label("R/W", EditorStyles.label, GUILayout.MinWidth(85));
            GUILayout.Label("MaxSize", EditorStyles.label, GUILayout.MinWidth(85));
            GUILayout.Label("Android", EditorStyles.label, GUILayout.MinWidth(125));
            GUILayout.Label("Ios", EditorStyles.label, GUILayout.MinWidth(90));
            GUILayout.Label("Recursive", EditorStyles.label, GUILayout.MinWidth(55));
            GUILayout.Label("Apply", EditorStyles.label, GUILayout.MinWidth(55));
            GUILayout.EndHorizontal();

            GUIStyle style = GUI.skin.textField;

            //style.font = new Font()
            for (int i = 0; i < TextureImportDataManager.Instance.DataList.Count; i++)
            {
                GUILayout.BeginHorizontal();
                TextureImportData data = TextureImportDataManager.Instance.DataList[i];

                if (data.Index == SelectedIndex)
                {
                    GUI.color = Color.green;
                }
                else
                {
                    GUI.color = new Color(0.8f, 0.8f, 0.8f, 1);
                }

                if (GUILayout.Button(data.AssetPath, style, GUILayout.MinWidth(250)))
                {
                    SelectedIndex = data.Index;
                }
                if (GUILayout.Button(data.FileFilter, style, GUILayout.MinWidth(120)))
                {
                    SelectedIndex = data.Index;
                }
                if (GUILayout.Button(data.Index.ToString(), style, GUILayout.MinWidth(80)))
                {
                    SelectedIndex = data.Index;
                }
                if (GUILayout.Button(data.AlphaSource.ToString(), style, GUILayout.MinWidth(80)))
                {
                    SelectedIndex = data.Index;
                }
                if (GUILayout.Button(data.TextureType.ToString(), style, GUILayout.MinWidth(80)))
                {
                    SelectedIndex = data.Index;
                }
                if (GUILayout.Button(data.Mipmap.ToString(), style, GUILayout.MinWidth(80)))
                {
                    SelectedIndex = data.Index;
                }
                if (GUILayout.Button(data.ReadWriteEnable.ToString(), style, GUILayout.MinWidth(80)))
                {
                    SelectedIndex = data.Index;
                }
                if (GUILayout.Button(data.MaxSize.ToString(), style, GUILayout.MinWidth(80)))
                {
                    SelectedIndex = data.Index;
                }
                if (GUILayout.Button(data.AndroidFormat.ToString(), style, GUILayout.MinWidth(120)))
                {
                    SelectedIndex = data.Index;
                }
                if (GUILayout.Button(data.IosFormat.ToString(), style, GUILayout.MinWidth(120)))
                {
                    SelectedIndex = data.Index;
                }
                if (GUILayout.Button(data.IsRecursive.ToString(), style, GUILayout.MinWidth(50)))
                {
                    SelectedIndex = data.Index;
                }
                if (GUILayout.Button("Apply", GUILayout.MinWidth(50)))
                {
                    TextureImportDataTool.ReimportTextures(data);
                }
                GUILayout.EndHorizontal();
            }

            if (null != guids)
            {
                int count = 0;
                for (int i = 0; i < guids.Length; i++)
                {
                    string path = AssetDatabase.GUIDToAssetPath(guids[i]);
                    if (string.IsNullOrEmpty(path))
                    {
                        continue;
                    }
                    if (!m_isRecursive)
                    {
                        string dir = path.Remove(path.LastIndexOf('/'));
                        if (!dir.Equals(m_path))
                        {
                            continue;
                        }
                    }
                    string name = path.Substring(path.LastIndexOf('/') + 1);
                    if (!Regex.IsMatch(name, m_filter))
                    {
                        continue;
                    }
                    TextureImporter ai = AssetImporter.GetAtPath(path) as TextureImporter;
                    if (null != ai)
                    {
                        GUILayout.BeginHorizontal();
                        GUILayout.Label(path, GUILayout.MinWidth(250));
                        GUILayout.Label("", GUILayout.MinWidth(120));
                        GUILayout.Label((++count).ToString(), GUILayout.MinWidth(85));
                        GUILayout.Label(ai.alphaSource.ToString(), GUILayout.MinWidth(85));
                        GUILayout.Label(ai.textureType.ToString(), GUILayout.MinWidth(85));
                        GUILayout.Label(ai.mipmapEnabled.ToString(), GUILayout.MinWidth(85));
                        GUILayout.Label(ai.isReadable.ToString(), GUILayout.MinWidth(85));
                        TextureImporterPlatformSettings settingAndroid = ai.GetPlatformTextureSettings("Android");
                        GUILayout.Label(settingAndroid.maxTextureSize.ToString(), GUILayout.MinWidth(85));
                        GUILayout.Label(settingAndroid.format.ToString(), GUILayout.MinWidth(125));
                        TextureImporterPlatformSettings settingIos = ai.GetPlatformTextureSettings("iPhone");
                        GUILayout.Label(settingIos.format.ToString(), GUILayout.MinWidth(125));
                        GUILayout.Label("", GUILayout.MinWidth(55));
                        GUILayout.EndHorizontal();
                    }
                }
            }
            GUI.EndScrollView();
        }
Ejemplo n.º 2
0
 private static void ApplyRulesToTexture(TextureImporter textureImporter)
 {
     TextureImportDataTool.TextureImport(textureImporter);
     //var rule = FindBestRule<TextureFolderRule>(textureImporter, GetAllTextureFolderRules());
     //ApplyTextureRule( textureImporter, rule );
 }