zoukankan      html  css  js  c++  java
  • 图片替换工具

    using UnityEngine;
    using System.Collections.Generic;
    using UnityEditor;
    using System.IO;
    
    enum ImageOptions
    {
        Load_AppLogo, Load_Outside, Load_Inside, Load_BG,
        Main_ArCam, Main_PDF, Main_BG,
        Content_Return, Content_Capture, Content_PlaySound, Content_PlyaAnimation, Content_Version
    }
    
    public class ArtBoot : EditorWindow
    {
    
        bool isLoadMode = false;
        bool isMainMode = false;
        bool isContentMode = false;
    
        string sourcepath;
        string destpath;
    
        public string urlToEdit = "";
        string urlDestPath;
    
        [MenuItem("AR工具/美术引导")]
    
        static void Init()
        {
            ArtBoot filter = (ArtBoot)EditorWindow.GetWindow(typeof(ArtBoot));
            filter.Show();
        }
            
        void OnGUI()
        {  
            EditorGUILayout.LabelField("1.点击对应按钮,导入并更新对应资源。");
            EditorGUILayout.LabelField("2.填入PDF下载链接URL。");
            EditorGUILayout.LabelField("3.PS保存时,统一成Web所用格式png。");
            EditorGUILayout.LabelField("4.UI目标路径:Assets/Resources/UI。");
    
            EditorGUILayout.BeginHorizontal();
            GUI.color = Color.cyan;
            if(GUILayout.Button("加载界面设置"))
            {
                isLoadMode = true;
                isMainMode = false;
                isContentMode = false;
            }
    
            GUI.color = Color.red;
            if (GUILayout.Button("主界面设置"))
            {
                isLoadMode = false;
                isMainMode = true;
                isContentMode = false;
            }
    
            GUI.color = Color.yellow;
            if (GUILayout.Button("内容界面设置"))
            {
                isLoadMode = false;
                isMainMode = false;
                isContentMode = true;
            }
            EditorGUILayout.EndHorizontal();
    
            GUI.color = Color.white;
    
            if(isLoadMode)
            {
                GUI.color = Color.cyan;
                
                if(GUILayout.Button("产品LOGO图标"))
                {
                    imageLoad(ImageOptions.Load_AppLogo);
                }
                if (GUILayout.Button("加载外框图标"))
                {
                    imageLoad(ImageOptions.Load_Outside);
                }
                if (GUILayout.Button("加载读条图标"))
                {
                    imageLoad(ImageOptions.Load_Inside);
                }
                if (GUILayout.Button("加载界面背景图片"))
                {
                    imageLoad(ImageOptions.Load_BG);
                }
                GUI.color = Color.white;
            }
    
            if (isMainMode)
            {
                GUI.color = Color.red;
                if (GUILayout.Button("AR相机按钮图标"))
                {
                    imageLoad (ImageOptions.Main_ArCam);
                }
                if (GUILayout.Button("PDF帮助按钮图标"))
                {
                    imageLoad (ImageOptions.Main_PDF);
                }
    
                GUI.SetNextControlName ("pdfUrlText");
                urlToEdit = TextField ("PDF下载地址: ", urlToEdit).ToString ();
                
    
                if (GUILayout.Button("生成下载地址"))
                {
                    if (urlToEdit.Length == 0) {
                        EditorUtility.DisplayDialog ("错误", "PDF下载地址不能为空!", "OK");
                    } 
                    else 
                    {
                        urlDestPath = Application.dataPath + "/Resources/UI/url.txt";  
                        StreamWriter writer = new StreamWriter (urlDestPath,true); 
                        writer.WriteLine (urlToEdit);  //https://docs.unity3d.com/ScriptReference/menu.pdf
                        writer.Close ();
    
                        AssetDatabase.Refresh();
                    }
                }
                    
    
                if (GUILayout.Button("主界面背景图片"))
                {
                    imageLoad (ImageOptions.Main_BG);
                }
                GUI.color = Color.white;
            }
    
    
            if (isContentMode)
            {
                GUI.color = Color.yellow;
                if (GUILayout.Button("返回按钮图标"))
                {
                    imageLoad (ImageOptions.Content_Return);
                }
                if (GUILayout.Button("截取单帧按钮图标"))
                {
                    imageLoad (ImageOptions.Content_Capture);
                }
    
                if (GUILayout.Button("播放声音按钮图标"))
                {
                    imageLoad (ImageOptions.Content_PlaySound);
                }
    
                if (GUILayout.Button("播放动画按钮图标"))
                {
                    imageLoad (ImageOptions.Content_PlyaAnimation);
                }
    
                if (GUILayout.Button("版本图标"))
                {
                    imageLoad (ImageOptions.Content_Version);
                }
                GUI.color = Color.white;
            }
        }   
    
        //<summary>        
        //Load new image and override the old one in project
        //</summary>
        void imageLoad(ImageOptions ops)
        {
            sourcepath = EditorUtility.OpenFilePanel("Overwrite with png", "", "png");
    
            switch (ops) 
            {
            case ImageOptions.Load_AppLogo:
                destpath = Application.dataPath + "/Resources/UI/Load_AppLogo.png";
                break;
            case ImageOptions.Load_Outside:
                destpath = Application.dataPath + "/Resources/UI/Load_Outside.png";
                break;
            case ImageOptions.Load_Inside:
                destpath = Application.dataPath + "/Resources/UI/Load_Inside.png";
                break;
            case ImageOptions.Load_BG:
                destpath = Application.dataPath + "/Resources/UI/Load_BG.png";
                break;
    
            case ImageOptions.Main_ArCam:
                destpath = Application.dataPath + "/Resources/UI/Main_ArCam.png";
                break;
            case ImageOptions.Main_PDF:
                destpath = Application.dataPath + "/Resources/UI/Main_PDF.png";
                break;
            case ImageOptions.Main_BG:
                destpath = Application.dataPath + "/Resources/UI/Main_BG.png";
                break;
    
            case ImageOptions.Content_Return:
                destpath = Application.dataPath + "/Resources/UI/Content_Return.png";
                break;
            case ImageOptions.Content_Capture:
                destpath = Application.dataPath + "/Resources/UI/Content_Capture.png";
                break;
            case ImageOptions.Content_PlaySound:
                destpath = Application.dataPath + "/Resources/UI/Content_PlaySound.png";
                break;
            case ImageOptions.Content_PlyaAnimation:
                destpath = Application.dataPath + "/Resources/UI/Content_PlyaAnimation.png";
                break;
            case ImageOptions.Content_Version:
                destpath = Application.dataPath + "/Resources/UI/Content_Version.png";
                break;
            }
                
    
            if (!sourcepath.Equals ("")) {
                FileUtil.ReplaceFile (sourcepath, destpath);
            } else {
                EditorUtility.DisplayDialog ("错误", "图片路径不能为空!", "OK");
            }
            
            AssetDatabase.Refresh();
        }
    
        //<summary>        
        //Create a EditorGUILayout.TextField with no space between label and text field
        //</summary>
        string TextField(string label, string text)
        {
            var textDimensions = GUI.skin.label.CalcSize(new GUIContent(label));
            EditorGUIUtility.labelWidth = textDimensions.x;
            return EditorGUILayout.TextField(label, text);
        }
    }
  • 相关阅读:
    Python Special Syntax 7:继承
    Python Special Syntax 6:模块的__name__
    Python Special Syntax 5:对象相关
    Python Special Syntax 4:序列相关
    Python Special Syntax 3:删除对象和dir函数
    Python import与from import的区别
    Python Special Syntax 2:天才级的文档互动DocString
    Python Special Syntax 1: Python的局部变量和全局变量
    Python抓取页面乱码问题的解决
    win10居然把Linux的引导覆盖了
  • 原文地址:https://www.cnblogs.com/JimmyCode/p/6945051.html
Copyright © 2011-2022 走看看