123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317 |
- using UnityEditor;
- using UnityEngine;
- using UnityEngine.UI;
- using System.IO;
- using System.Linq;
- using System.Collections;
- using System.Collections.Generic;
- using LitJson;
- [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);
- }
- if (GUILayout.Button("InstaciateAll"))
- {
- for (int i = 0; i < Script.Sprites.Count; i++)
- {
- GameObject go = new GameObject();
- go.transform.parent = Script.Go.transform;
- go.AddComponent<SpriteRenderer>().sprite = Script.Sprites[i];
- }
- }
- if (GUILayout.Button("SliceByDragonboneData"))
- {
- SliceByDragonboneData();
- }
- if (GUILayout.Button("ClearPackingTag"))
- {
- List<string> searchExtension = new List<string>()
- {
- ".png",
- };
- List<string> pathList = Directory.GetFiles(Application.dataPath, "*.*", SearchOption.AllDirectories).Where
- (
- path =>
- {
- string extension = Path.GetExtension(path);
- if (searchExtension.Contains(extension))
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- )
- .ToList();
- for (int i = 0; i < pathList.Count; i++)
- {
- string path = "Assets" + pathList[i].Replace(Application.dataPath, "");
- TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
- if (textureImporter == null)
- {
- continue;
- }
- textureImporter.spritePackingTag = "";
- textureImporter.SaveAndReimport();
- }
- }
- }
- private void SliceByDragonboneData()
- {
- string assetPath = AssetDatabase.GetAssetPath(Script.Texture);
- TextureImporter textureImporter = (TextureImporter) AssetImporter.GetAtPath(assetPath);
- JsonData jsonData = JsonMapper.ToObject(Script.TextAsset.text);
- jsonData = jsonData["SubTexture"];
- List<SpriteMetaData>spriteMetaDataList = new List<SpriteMetaData>();
- for (int i = 0; i < jsonData.Count; i++)
- {
- SpriteMetaData spriteMetaData = new SpriteMetaData();
- int x = int.Parse(jsonData[i].Inst_Object["x"].ToJson().Trim('"'));
- int y = int.Parse(jsonData[i].Inst_Object["y"].ToJson().Trim('"'));
- int width = int.Parse(jsonData[i].Inst_Object["width"].ToJson().Trim('"'));
- int height = int.Parse(jsonData[i].Inst_Object["height"].ToJson().Trim('"'));
- string spriteName = jsonData[i].Inst_Object["name"].ToJson().Trim('"');
- spriteMetaData.rect = new Rect(x, Script.Texture.width - y - height, width, height);
- spriteMetaData.name = spriteName;
- spriteMetaDataList.Add(spriteMetaData);
- }
- textureImporter.spritesheet = spriteMetaDataList.ToArray();
- textureImporter.textureType = TextureImporterType.Sprite;
- textureImporter.spriteImportMode = SpriteImportMode.Multiple;
- textureImporter.SaveAndReimport();
- }
- private void PrintBounds()
- {
- Bounds bounds = Script.Go.GetComponent<Renderer>().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<Transform>(true);
- for (int i = 0; i < transforms.Length; i++)
- {
- Text text = transforms[i].GetComponent<Text>();
- TextMesh textMesh = transforms[i].GetComponent<TextMesh>();
- 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<Transform>(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<Transform>(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<Transform>(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<Transform>(true);
- for (int i = 0; i < transforms.Length; i++)
- {
- transforms[i].name = transforms[i].name.Replace(Script.String1, Script.String2);
- }
- }
- }
|