图片替换工具
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); } }