Sprite3DEditor.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using UnityEngine;
  2. using UnityEditor;
  3. using System.Collections;
  4. [CustomEditor(typeof(Sprite3D))]
  5. public class Sprite3DEditor : Editor
  6. {
  7. public override void OnInspectorGUI()
  8. {
  9. serializedObject.Update();
  10. Sprite3D sprite = (Sprite3D)target;
  11. EditorGUILayout.BeginVertical();
  12. //sprite.GenerateMesh();
  13. sprite.useAtlas = EditorGUILayout.Toggle("使用手动生成的Atlas", sprite.useAtlas);
  14. if(sprite.useAtlas)
  15. {
  16. sprite.atlas = (AtlasInfo)EditorGUILayout.ObjectField("Atlas", sprite.atlas, typeof(AtlasInfo), false);
  17. sprite.spriteName = EditorGUILayout.TextField("SpriteName", sprite.spriteName);
  18. }
  19. else
  20. {
  21. sprite.texture = (Texture2D)EditorGUILayout.ObjectField("Texture", sprite.texture, typeof(Texture2D), false);
  22. sprite.autoAtlasTag = EditorGUILayout.TextField("Tag", sprite.autoAtlasTag);
  23. sprite.compress = EditorGUILayout.Toggle("Compress Texture", sprite.compress);
  24. sprite.padding = Mathf.Max(EditorGUILayout.IntField("Padding", sprite.padding), 0);
  25. }
  26. sprite.alignVertical = (Sprite3D.EnumVertical)EditorGUILayout.EnumPopup("Align Vertical", sprite.alignVertical);
  27. sprite.alignHoriontal = (Sprite3D.EnumHoriontal)EditorGUILayout.EnumPopup("Align Horiontal", sprite.alignHoriontal);
  28. sprite.width = EditorGUILayout.FloatField("Width", sprite.width);
  29. sprite.height = EditorGUILayout.FloatField("Height", sprite.height);
  30. sprite.color = EditorGUILayout.ColorField("Color", sprite.color);
  31. sprite.depth = EditorGUILayout.FloatField("Depth", sprite.depth);
  32. sprite.fillType = (Sprite3D.EnumFillType)EditorGUILayout.EnumPopup("Fill Type", sprite.fillType);
  33. sprite.PhaseType = (Sprite3D.RadialPhaseType)EditorGUILayout.EnumPopup("Phase Type", sprite.PhaseType);
  34. sprite.fillAmount = EditorGUILayout.Slider("Slice", sprite.fillAmount, 0, 1);
  35. if(sprite.fillType == Sprite3D.EnumFillType.Radial360)
  36. {
  37. sprite.segments = (uint)Mathf.Max(10, EditorGUILayout.IntField("Segments", (int)sprite.segments));
  38. }
  39. EditorGUILayout.EndVertical();
  40. }
  41. }