using UnityEditor; using UnityEngine; using UnityEngine.UI; using System.IO; using System.Collections; using System.Collections.Generic; [CustomEditor(typeof(Auxiliary))] public class EditorAuxiliary : Editor { #region 变量 private Auxiliary Script; #endregion private void OnEnable() { Script = (Auxiliary) target; } public override void OnInspectorGUI() { base.OnInspectorGUI(); if (GUILayout.Button("Temp")) { } if (GUILayout.Button("PrintBounds")) { PrintBounds(); } if (GUILayout.Button("PrintPosition")) { PrintPosition(); } if (GUILayout.Button("PrintPositionLocal")) { PrintPositionLocal(); } if (GUILayout.Button("ChangeFont")) { ChangeFont(); } if (GUILayout.Button("ChangePivot")) { ChangePivot(); } if (GUILayout.Button("AddSuffix")) { AddSuffix(); } if (GUILayout.Button("AddPrefix")) { AddPrefix(); } if (GUILayout.Button("ChangePrefix")) { ChangePrefix(); } if (GUILayout.Button("ReplaceFromTo")) { ReplaceFromTo(); } if (GUILayout.Button("CopyCurve")) { //EditorCurveBinding[] bindings = AnimationUtility.GetCurveBindings(Script.ClipOrigin); //for (int i = 0; i < bindings.Length; i++) //{ // Debug.Log(string.Format("path : {0} type : {1} name : {2}", bindings[i].path, bindings[i].type, bindings[i].propertyName)); //} //EditorCurveBinding bindingOrigin = new EditorCurveBinding(); //bindingOrigin.type = typeof(SpriteRenderer); //bindingOrigin.path = "Flash"; //bindingOrigin.propertyName = "m_Color.a"; //AnimationCurve curveOrigin = AnimationUtility.GetEditorCurve(Script.ClipOrigin, bindingOrigin); //EditorCurveBinding bindingNew = new EditorCurveBinding(); //bindingNew.type = typeof(Image); //bindingNew.path = "UIFlash"; //bindingNew.propertyName = "m_Color.a"; //AnimationCurve curveNew = AnimationUtility.GetEditorCurve(Script.ClipNew, bindingNew); //curveNew.keys = curveOrigin.keys; //AnimationUtility.SetEditorCurve(Script.ClipNew, bindingNew, curveNew); //EditorUtility.SetDirty(Script.ClipNew); } } private void PrintBounds() { Bounds bounds = Script.Go.GetComponent().bounds; Debug.Log(string.Format("x : {0:0.00} y : {1:0.00} z : {2:0.00}", bounds.extents.x, bounds.extents.y, bounds.extents.z)); } private void PrintPosition() { Debug.Log(Script.Go.transform.position); } private void PrintPositionLocal() { Debug.Log(Script.Go.transform.localPosition); } private void ChangeFont() { for (int j = 0; j < Script.GoList.Count; j++) { Transform[] transforms = Script.GoList[j].GetComponentsInChildren(true); for (int i = 0; i < transforms.Length; i++) { Text text = transforms[i].GetComponent(); TextMesh textMesh = transforms[i].GetComponent(); if (text != null) { text.font = Script.Font; text.fontStyle = FontStyle.Normal; } if (textMesh != null) { textMesh.font = Script.Font; textMesh.fontStyle = FontStyle.Normal; } } } } private void ChangePivot() { for (int i = 0; i < Script.SrList.Count; i++) { string path = AssetDatabase.GetAssetPath(Script.SrList[i].sprite); TextureImporter textureImporter = (TextureImporter)AssetImporter.GetAtPath(path); float offsetX = -Script.SrList[i].transform.position.x * 100 / Script.SrList[i].sprite.texture.width; float offsetY = -Script.SrList[i].transform.position.y * 100 / Script.SrList[i].sprite.texture.height; textureImporter.spritePivot = new Vector2(textureImporter.spritePivot.x + offsetX, textureImporter.spritePivot.y + offsetY); AssetDatabase.ImportAsset(path); } } private void AddSuffix() { Transform[] transforms = Script.Go.GetComponentsInChildren(true); for (int i = 0; i < transforms.Length; i++) { transforms[i].name = transforms[i].name + Script.String1; } } private void AddPrefix() { Transform[] transforms = Script.Go.GetComponentsInChildren(true); for (int i = 0; i < transforms.Length; i++) { transforms[i].name = Script.String1 + transforms[i].name; } } private void ChangePrefix() { Transform[] transforms = Script.Go.GetComponentsInChildren(true); for (int i = 0; i < transforms.Length; i++) { int index = transforms[i].name.IndexOf('_'); transforms[i].name = Script.String1 + transforms[i].name.Remove(0, index + 1); } } private void ReplaceFromTo() { Transform[] transforms = Script.Go.GetComponentsInChildren(true); for (int i = 0; i < transforms.Length; i++) { transforms[i].name = transforms[i].name.Replace(Script.String1, Script.String2); } } }