From 5145dd09cab55a896d510482f2e22f74b4d4b76f Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 5 Jun 2021 19:51:03 +0800 Subject: *misc --- .../Tools/BoneViewer/Editor/BoneViewerEditor.cs | 21 +- .../EditorGUIHelper/Editor/EditorGUIHelper.cs | 166 +++++++++++++- .../EditorGUIHelper/Editor/EditorGUIHelperSetUp.cs | 9 + .../Editor/EditorGUIHelperSetUp.cs.meta | 11 + .../EditorGUIHelper/Editor/EditorHandlesHelper.cs | 68 +++++- .../Editor/EditorHandlesHelper.cs.meta | 2 +- .../EditorGUIHelper/Editor/InspectorExtends.meta | 8 + .../Editor/InspectorExtends/InspectorExt.cs | 64 ++++++ .../Editor/InspectorExtends/InspectorExt.cs.meta | 11 + .../InspectorExtends/MeshRendererInspector.cs | 80 +++++++ .../InspectorExtends/MeshRendererInspector.cs.meta | 11 + .../SkinnedMeshRendererInspector.cs | 132 +++++++++++ .../SkinnedMeshRendererInspector.cs.meta | 11 + .../Editor/InspectorExtends/TransformInspector.cs | 50 ++++ .../InspectorExtends/TransformInspector.cs.meta | 11 + .../EditorGUIHelper/Examples/CustomHandles.unity | 251 ++++++++++++++++++++- .../Tools/EditorGUIHelper/Examples/Editor.meta | 8 - .../Examples/Editor/RotationLimitAngleInspector.cs | 27 --- .../Editor/RotationLimitAngleInspector.cs.meta | 11 - .../Assets/Tools/EditorGUIHelper/Icons.meta | 8 + .../Assets/Tools/EditorGUIHelper/Icons/Bounds.png | Bin 0 -> 243 bytes .../Tools/EditorGUIHelper/Icons/Bounds.png.meta | 92 ++++++++ .../MinMaxSliderAttribute/Editor.meta | 2 +- .../Editor/MinMaxSliderDrawer.cs.meta | 2 +- .../MinMaxSliderAttribute.cs.meta | 2 +- 25 files changed, 997 insertions(+), 61 deletions(-) create mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorGUIHelperSetUp.cs create mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorGUIHelperSetUp.cs.meta create mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends.meta create mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/InspectorExt.cs create mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/InspectorExt.cs.meta create mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/MeshRendererInspector.cs create mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/MeshRendererInspector.cs.meta create mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/SkinnedMeshRendererInspector.cs create mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/SkinnedMeshRendererInspector.cs.meta create mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/TransformInspector.cs create mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/TransformInspector.cs.meta delete mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Examples/Editor.meta delete mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Examples/Editor/RotationLimitAngleInspector.cs delete mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Examples/Editor/RotationLimitAngleInspector.cs.meta create mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Icons.meta create mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Icons/Bounds.png create mode 100644 UnityCollection/Assets/Tools/EditorGUIHelper/Icons/Bounds.png.meta (limited to 'UnityCollection/Assets/Tools') diff --git a/UnityCollection/Assets/Tools/BoneViewer/Editor/BoneViewerEditor.cs b/UnityCollection/Assets/Tools/BoneViewer/Editor/BoneViewerEditor.cs index f143670..e75e564 100644 --- a/UnityCollection/Assets/Tools/BoneViewer/Editor/BoneViewerEditor.cs +++ b/UnityCollection/Assets/Tools/BoneViewer/Editor/BoneViewerEditor.cs @@ -81,16 +81,29 @@ public class BoneViewerEditor : EditorTool EditorGUI.BeginChangeCheck(); Handles.zTest = UnityEngine.Rendering.CompareFunction.Always; - Handles.color = new Color(1, 1, 1, m_Alpha); + Transform[] bones = renderer.bones; Transform root = renderer.rootBone; + Color col = Handles.color; if(root && m_ShowBones) - DrawBone(null, root, 0); + DrawBone(null, root, 0, bones); + Handles.color = col; } - void DrawBone(Transform parent, Transform bone, int depth) + void DrawBone(Transform parent, Transform bone, int depth, Transform[] bones) { if (bone == null) return; + Color col = Color.white; + for(int i = 0; i < bones.Length; ++i) + { + if(bones[i] == bone) + { + col = Color.blue; + break; + } + } + col.a = m_Alpha; + Handles.color = col; Handles.SphereHandleCap(0, bone.position, bone.rotation, m_Size, EventType.Repaint); if(parent) Handles.DrawLine(parent.position, bone.position); @@ -101,7 +114,7 @@ public class BoneViewerEditor : EditorTool int count = bone.childCount; for(int i = 0;i < count; ++i) { - DrawBone(bone, bone.GetChild(i), depth + 1); + DrawBone(bone, bone.GetChild(i), depth + 1, bones); } } diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorGUIHelper.cs b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorGUIHelper.cs index 3ccde08..78528b7 100644 --- a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorGUIHelper.cs +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorGUIHelper.cs @@ -1,13 +1,175 @@ -using System.Collections; +using System; +using System.Reflection; +using System.Collections; using System.Collections.Generic; using UnityEngine; +using UnityEditor; + +public static class ToolsHelper +{ + static FieldInfo s_Hidden; + static ToolsHelper() + { + Type type = typeof(Tools); + s_Hidden = type.GetField("s_Hidden", BindingFlags.NonPublic | BindingFlags.Static); + } + + // hide default handles + public static bool Hidden + { + get + { + return ((bool)s_Hidden.GetValue(null)); + } + set + { + s_Hidden.SetValue(null, value); + } + } +} public static class EditorGUIHelper { + #region methods + delegate void DrawPropertiesExcludingDelegate(SerializedObject obj, params string[] propertyToExclude); + static DrawPropertiesExcludingDelegate DrawPropertiesExcluding; + #endregion + + #region Styles + static GUIStyle s_EditToolButtonStyle; + #endregion + static EditorGUIHelper() { + SetupMethods(); + SetupGUIStyles(); + } + static void SetupMethods() + { + DrawPropertiesExcluding = GetMethod(typeof(Editor), "DrawPropertiesExcluding", BindingFlags.Static | BindingFlags.NonPublic); } + static void SetupGUIStyles() + { + s_EditToolButtonStyle = new GUIStyle("Button"); + s_EditToolButtonStyle.padding = new RectOffset(0, 0, 0, 0); + s_EditToolButtonStyle.margin = new RectOffset(0, 0, 0, 0); + } -} + private static T GetMethod(Type type, string name) where T : Delegate + { + var method = type.GetMethod(name); + T del = (T)Delegate.CreateDelegate(typeof(T), method); + return del; + } + + private static T GetMethod(Type type, string name, BindingFlags flag) where T : Delegate + { + var method = type.GetMethod(name, flag); + T del = (T)Delegate.CreateDelegate(typeof(T), method); + return del; + } + + // 绘制默认inspector但不显示script + public static bool DrawDefaultInspectorWithoutScriptField(this Editor Inspector) + { + EditorGUI.BeginChangeCheck(); + Inspector.serializedObject.Update(); + SerializedProperty Iterator = Inspector.serializedObject.GetIterator(); + Iterator.NextVisible(true); + while (Iterator.NextVisible(false)) + { + EditorGUILayout.PropertyField(Iterator, true); + } + Inspector.serializedObject.ApplyModifiedProperties(); + return (EditorGUI.EndChangeCheck()); + } + + // 绘制默认inspector,但是不显示field + public static void DrawDefaultInspectorWithoutField(SerializedObject obj, string field) + { + EditorGUI.BeginChangeCheck(); + DrawPropertiesExcluding(obj, field); + if (EditorGUI.EndChangeCheck()) + obj.ApplyModifiedProperties(); + } + + // 控制tools开启的toggle + public static bool DrawToolsToggle(this Editor caller, string label, GUIContent icon, bool toggle) + { + Rect controlRect = EditorGUILayout.GetControlRect(true, 20f, new GUILayoutOption[0]); + Rect position = new Rect(controlRect.xMin + EditorGUIUtility.labelWidth, controlRect.yMin, 33f, 20f); + GUIContent content = new GUIContent(label); + Vector2 vector = GUI.skin.label.CalcSize(content); + Rect position2 = new Rect(controlRect.xMin, controlRect.yMin + (controlRect.height - vector.y) * 0.5f, vector.x, controlRect.height); + int instanceID = caller.GetInstanceID(); + GUI.Label(position2, label); + toggle = GUI.Toggle(position, toggle, icon, s_EditToolButtonStyle); + return toggle; + } + + // 控制tools开启的toggle + public static bool DrawToolsToggle(this Editor caller, string label, bool toggle) + { + Rect controlRect = EditorGUILayout.GetControlRect(true, 20f, new GUILayoutOption[0]); + Rect position = new Rect(controlRect.xMin + EditorGUIUtility.labelWidth, controlRect.yMin, 33f, 20f); + GUIContent content = new GUIContent(label); + Vector2 vector = GUI.skin.label.CalcSize(content); + Rect position2 = new Rect(controlRect.xMin, controlRect.yMin + (controlRect.height - vector.y) * 0.5f, vector.x, controlRect.height); + int instanceID = caller.GetInstanceID(); + GUI.Label(position2, label); + toggle = GUI.Toggle(position, toggle, ""); + return toggle; + } + + // label content + public static void LabelField (string label, string content) + { + Rect controlRect = EditorGUILayout.GetControlRect(true, 20f, new GUILayoutOption[0]); + Vector2 vector = GUI.skin.label.CalcSize(new GUIContent(label)); + EditorGUI.LabelField(new Rect(controlRect.xMin, controlRect.yMin, vector.x, 20f), label); + vector = GUI.skin.label.CalcSize(new GUIContent(content)); + EditorGUI.LabelField(new Rect(controlRect.xMin + EditorGUIUtility.labelWidth, controlRect.yMin, vector.x, 20f), content); + } + + // 靠右的label + public static void LabelFieldRight(string content) + { + Rect controlRect = EditorGUILayout.GetControlRect(true, 20f, new GUILayoutOption[0]); + Vector2 vector = GUI.skin.label.CalcSize(new GUIContent(content)); + EditorGUI.LabelField(new Rect(controlRect.xMin + EditorGUIUtility.labelWidth, controlRect.yMin, vector.x, 20f), content); + } + + public static bool Button(string label, string content, int width) + { + Rect controlRect = EditorGUILayout.GetControlRect(true, 20f, new GUILayoutOption[0]); + Vector2 vector = GUI.skin.label.CalcSize(new GUIContent(label)); + EditorGUI.LabelField(new Rect(controlRect.xMin, controlRect.yMin, vector.x, 20f), label); + return GUI.Button(new Rect(controlRect.xMin + EditorGUIUtility.labelWidth, controlRect.yMin, width, 20f), content); + } + + // label button tip + public static bool Button(string label, string content, int width, string tip) + { + Rect controlRect = EditorGUILayout.GetControlRect(true, 20f, new GUILayoutOption[0]); + Vector2 vector = GUI.skin.label.CalcSize(new GUIContent(label)); + EditorGUI.LabelField(new Rect(controlRect.xMin, controlRect.yMin, vector.x, 20f), label); + bool clicked = GUI.Button(new Rect(controlRect.xMin + EditorGUIUtility.labelWidth, controlRect.yMin, width, 20f), content); + EditorGUI.LabelField(new Rect(controlRect.xMin + EditorGUIUtility.labelWidth + width + 5, controlRect.yMin, vector.x, 20f), tip); + return clicked; + } + + // 按钮是图形而不是对勾的toggle + public static bool ToggleButton(string label, bool value, GUIContent button) + { + Rect controlRect = EditorGUILayout.GetControlRect(true, 20f, new GUILayoutOption[0]); + Rect position = new Rect(controlRect.xMin + EditorGUIUtility.labelWidth, controlRect.yMin, 33f, 20f); + GUIContent content = new GUIContent(label); + Vector2 vector = GUI.skin.label.CalcSize(content); + Rect position2 = new Rect(controlRect.xMin, controlRect.yMin + (controlRect.height - vector.y) * 0.5f, vector.x, controlRect.height); + GUI.Label(position2, label); + value = GUI.Toggle(position, value, button, s_EditToolButtonStyle); + return value; + } +} \ No newline at end of file diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorGUIHelperSetUp.cs b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorGUIHelperSetUp.cs new file mode 100644 index 0000000..c1e41ea --- /dev/null +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorGUIHelperSetUp.cs @@ -0,0 +1,9 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public static class EditorGUIHelperSetUp +{ + public static string root = "Assets/Tools/EditorGUIHelper/"; + +} \ No newline at end of file diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorGUIHelperSetUp.cs.meta b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorGUIHelperSetUp.cs.meta new file mode 100644 index 0000000..b3dae74 --- /dev/null +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorGUIHelperSetUp.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 334ea7a2b183f99489eff2b84c8231e6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorHandlesHelper.cs b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorHandlesHelper.cs index 4bf4b8f..3b2d648 100644 --- a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorHandlesHelper.cs +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorHandlesHelper.cs @@ -13,15 +13,50 @@ public static class EditorHandlesHelper static float s_ValueDrag; static float s_ScaleDrawLength; + // style + static GUIStyle s_StyleBlackLabel; + static GUIStyle s_StyleWhiteLabel; + static Dictionary s_StyleLabels; + static EditorHandlesHelper() { s_ValueScaleHandleHash = "ValueScaleHandleHash".GetHashCode(); + + SetupStyles(); + } + + static void SetupStyles() + { + s_StyleBlackLabel = new GUIStyle(); + s_StyleBlackLabel.normal.textColor = Color.black; + s_StyleWhiteLabel = new GUIStyle(); + s_StyleWhiteLabel.normal.textColor = Color.white; + s_StyleLabels = new Dictionary(); } #region 单一handle + // 箭头 + public static void Arrow(Vector3 position, Vector3 direction, float length = 1f, float arrowSize = 0.1f, bool dotted = false) + { + direction = direction.normalized; + if(!dotted) + Handles.DrawLine(position, position + direction * length); + else + Handles.DrawDottedLine(position, position + direction * length,1f); + Handles.ConeHandleCap(0, position + direction * length, Quaternion.LookRotation(direction, Vector3.up), arrowSize, EventType.Repaint); + } + + // 控制数值的箭头 + public static float ScaleValue(float value, Vector3 position, Vector3 direction, float length, Handles.CapFunction capFunc, Quaternion capRot, float size, float snap = 0) + { + Handles.DrawLine(position, position + direction * length); + value = ScaleValue(value, position + direction, capRot, size, capFunc, snap); + return value; + } + // 控制数值的handle - public static float ScaleValueHandle(float value, Vector3 position, Quaternion rotation, float size, Handles.CapFunction capFunc, float snap) + public static float ScaleValue(float value, Vector3 position, Quaternion rotation, float size, Handles.CapFunction capFunc, float snap) { int controlID = GUIUtility.GetControlID(s_ValueScaleHandleHash, FocusType.Keyboard); int id = controlID; @@ -90,10 +125,41 @@ public static class EditorHandlesHelper return value; } + // 带背景的label + public static void Label(Vector3 position, string label, Color textColor) + { + GUIStyle textStyle = TryGetLabelStyleOrCreate(textColor); + Handles.Label(position, label, textStyle); + } + + public static void WireCube(Vector3 position, Vector3 size, Color col) + { + Color c = Handles.color; + Handles.color = col; + Handles.DrawWireCube(position, size); + Handles.color = c; + } + #endregion #region 复合handle + #endregion + + #region 内部方法 + + static GUIStyle TryGetLabelStyleOrCreate(Color color) + { + GUIStyle style; + if (!s_StyleLabels.TryGetValue(color.GetHashCode(), out style)) + { + style = new GUIStyle(); + style.normal.textColor = color; + s_StyleLabels.Add(color.GetHashCode(), style); + } + return style; + } + #endregion } diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorHandlesHelper.cs.meta b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorHandlesHelper.cs.meta index 9214902..5980e0b 100644 --- a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorHandlesHelper.cs.meta +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/EditorHandlesHelper.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 769f17c75b56df84ba523a8dcfa021dc +guid: f833debbd4598444b9fee62250e36306 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends.meta b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends.meta new file mode 100644 index 0000000..02796be --- /dev/null +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d44acfdfc914b8a46858adb3b8a43a7d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/InspectorExt.cs b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/InspectorExt.cs new file mode 100644 index 0000000..8ec839d --- /dev/null +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/InspectorExt.cs @@ -0,0 +1,64 @@ +using System; +using System.Reflection; +using UnityEngine; +using UnityEditor; + +public abstract class InspectorExt : Editor +{ + protected Editor defaultEditor; + + protected abstract string defaultEditorName { get; } + + bool s_MoreInfo = true; + static readonly GUIContent more = EditorGUIUtility.TrTextContent("More Information", null, (Texture2D)null); + + public virtual void OnEnable() + { + defaultEditor = Editor.CreateEditor(targets, Type.GetType(defaultEditorName)); + if(defaultEditor == null) + Debug.LogError("No such editor class \""+ defaultEditorName + "\""); + TryInvokeDefaultMethod("OnEnable"); + } + + public virtual void OnDisable() + { + //When OnDisable is called, the default editor we created should be destroyed to avoid memory leakage. + //Also, make sure to call any required methods like OnDisable + TryInvokeDefaultMethod("OnDisable"); + DestroyImmediate(defaultEditor); + + s_MoreInfo = true; + } + + public override void OnInspectorGUI() + { + if (defaultEditor) + defaultEditor.OnInspectorGUI(); + } + + public virtual void OnSceneGUI () + { + TryInvokeDefaultMethod("OnSceneGUI"); + } + + protected bool BeginMore() + { + s_MoreInfo = EditorGUILayout.BeginFoldoutHeaderGroup(s_MoreInfo, more, null, null, null); + return s_MoreInfo; + } + + protected void EndMore() + { + EditorGUILayout.EndFoldoutHeaderGroup(); + } + + protected void TryInvokeDefaultMethod(string method, BindingFlags flag = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public) + { + MethodInfo disableMethod = defaultEditor.GetType().GetMethod(method, flag); + if (disableMethod != null) + { + disableMethod.Invoke(defaultEditor, null); + } + } + +} \ No newline at end of file diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/InspectorExt.cs.meta b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/InspectorExt.cs.meta new file mode 100644 index 0000000..33a6747 --- /dev/null +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/InspectorExt.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0ac8e9c82eb57e5489438cd41fa88ba5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/MeshRendererInspector.cs b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/MeshRendererInspector.cs new file mode 100644 index 0000000..8a639d6 --- /dev/null +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/MeshRendererInspector.cs @@ -0,0 +1,80 @@ +using System; +using System.Reflection; +using UnityEngine; +using UnityEditor; + +// չmeshrender editorʾ +// sortingLayer +// sortingOrder +// bounds +[CustomEditor(typeof(MeshRenderer), true)] +[CanEditMultipleObjects] +public class MeshRendererInspector : InspectorExt +{ + MeshRenderer renderer; + + bool s_ShowBounds = false; + + string s_BoundsIconPath = EditorGUIHelperSetUp.root + "Icons/bounds.png"; + GUIContent s_BoundsIcon; + + protected override string defaultEditorName => "UnityEditor.MeshRendererEditor, UnityEditor"; + + public override void OnEnable() + { + base.OnEnable(); + renderer = target as MeshRenderer; + Setup(); + } + + public override void OnDisable() + { + base.OnDisable(); + Setup(); + } + + void Setup() + { + s_ShowBounds = false; + if(s_BoundsIcon == null) + s_BoundsIcon = EditorGUIUtility.IconContent(s_BoundsIconPath); + } + + public sealed override void OnInspectorGUI() + { + base.OnInspectorGUI(); + + if (BeginMore()) + { + string sortingLayer = renderer.sortingLayerName; + string[] layers = new string[SortingLayer.layers.Length]; + int index = 0; + for (int i = 0; i < layers.Length; ++i) + { + layers[i] = SortingLayer.layers[i].name; + if (sortingLayer == layers[i]) + index = i; + } + index = EditorGUILayout.Popup("Sorting Layer", index, layers); + renderer.sortingLayerName = layers[index]; + renderer.sortingOrder = EditorGUILayout.IntField("Sorting Order", renderer.sortingOrder); + s_ShowBounds = EditorGUIHelper.ToggleButton("Show Bounds", s_ShowBounds, s_BoundsIcon); + } + EndMore(); + } + + public override void OnSceneGUI () + { + base.OnSceneGUI(); + if (s_ShowBounds) + { + Vector3 center = renderer.bounds.center; + float radius = renderer.bounds.extents.magnitude; + Handles.color = Color.white; + EditorHandlesHelper.WireCube(center, renderer.bounds.size, Color.blue); + Handles.color = Color.white; + EditorHandlesHelper.Label(center, "bounds:" + renderer.bounds.size,Color.blue); + } + } + +} \ No newline at end of file diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/MeshRendererInspector.cs.meta b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/MeshRendererInspector.cs.meta new file mode 100644 index 0000000..764508e --- /dev/null +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/MeshRendererInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4a54e71946e679847a74bc44ae85768f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/SkinnedMeshRendererInspector.cs b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/SkinnedMeshRendererInspector.cs new file mode 100644 index 0000000..e4859b9 --- /dev/null +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/SkinnedMeshRendererInspector.cs @@ -0,0 +1,132 @@ +using System; +using System.Reflection; +using UnityEngine; +using UnityEditor; + +// sortingLayer +// sortingOrder +// bounds +// bonecount +[CustomEditor(typeof(SkinnedMeshRenderer), true)] +[CanEditMultipleObjects] +public class SkinnedMeshRendererInspector : InspectorExt +{ + protected override string defaultEditorName => "UnityEditor.SkinnedMeshRendererEditor, UnityEditor"; + + SkinnedMeshRenderer renderer; + + string s_BoundsIconPath = EditorGUIHelperSetUp.root + "Icons/bounds.png"; + GUIContent s_BoundsIcon; + + bool s_ShowBounds = false; + + public override void OnEnable() + { + base.OnEnable(); + renderer = target as SkinnedMeshRenderer; + if (s_BoundsIcon == null) + s_BoundsIcon = EditorGUIUtility.IconContent(s_BoundsIconPath); + s_ShowBounds = false; + } + + public override void OnDisable() + { + base.OnDisable(); + s_ShowBounds = false; + } + + public override void OnInspectorGUI() + { + base.OnInspectorGUI(); + + if (renderer == null) + return; + + if(BeginMore()) + { + string sortingLayer = renderer.sortingLayerName; + string[] layers = new string[SortingLayer.layers.Length]; + int index = 0; + for (int i = 0; i < layers.Length; ++i) + { + layers[i] = SortingLayer.layers[i].name; + if (sortingLayer == layers[i]) + index = i; + } + index = EditorGUILayout.Popup("Sorting Layer", index, layers); + renderer.sortingLayerName = layers[index]; + renderer.sortingOrder = EditorGUILayout.IntField("Sorting Order", renderer.sortingOrder); + s_ShowBounds = EditorGUIHelper.ToggleButton("Show Bounds", s_ShowBounds, s_BoundsIcon); + Transform bone0 = renderer.bones != null && renderer.bones.Length > 0 ? renderer.bones[0] : null; + GUI.enabled = false; + EditorGUILayout.ObjectField("Bones[0]", bone0, typeof(Transform), true); + GUI.enabled = true; + //EditorGUIHelper.LabelField("Bone Count", GetBoneCount(bone0).ToString()); + EditorGUIHelper.LabelField("Bones Length", renderer.bones.Length.ToString()); + + // Mesh info + Mesh mesh = renderer.sharedMesh; + if(mesh) + { + EditorGUIHelper.LabelField("Mesh Info", "Vertex Count (VBO): " + mesh.vertexCount); + EditorGUIHelper.LabelFieldRight("Topology Count (IBO): " + mesh.triangles.Length); + EditorGUIHelper.LabelFieldRight("Possible Triangles Count: " + mesh.triangles.Length / 3); + EditorGUIHelper.LabelFieldRight("SubMesh Count: " + mesh.subMeshCount); + EditorGUIHelper.LabelFieldRight("Attributes: " + GetAttributesEnabled()); + } + } + EndMore(); + } + + + private int GetBoneCount(Transform root) + { + if (root == null) + return 0; + int childCount = root.childCount; + for (int i = 0; i < root.childCount; ++i) + { + childCount += GetBoneCount(root.GetChild(i)); + } + return childCount; + } + + public override void OnSceneGUI() + { + base.OnSceneGUI(); + if (s_ShowBounds) + { + Vector3 center = renderer.bounds.center; + float radius = renderer.bounds.extents.magnitude; + Handles.color = Color.white; + EditorHandlesHelper.WireCube(center, renderer.bounds.size, Color.blue); + Handles.color = Color.white; + EditorHandlesHelper.Label(center, "bounds:" + renderer.bounds.size, Color.blue); + } + } + + private string GetAttributesEnabled() + { + if (renderer == null) + return ""; + string attr = ""; + Mesh mesh = renderer.sharedMesh; + if (mesh.vertices.Length > 0) attr += "[position] "; + if (mesh.normals.Length > 0) attr += "[normal] "; + if (mesh.tangents.Length > 0) attr += "[tangent] "; + if (mesh.colors.Length > 0) attr += "[color] "; + if (mesh.uv.Length > 0) attr += "[uv1] "; + if (mesh.uv2.Length > 0) attr += "[uv2] "; + if (mesh.uv3.Length > 0) attr += "[uv3] "; + if (mesh.uv4.Length > 0) attr += "[uv4] "; +#if UNITY_2019 || UNITY_2020 || UNITY_2021 + if (mesh.uv5.Length > 0) attr += "[uv5] "; + if (mesh.uv6.Length > 0) attr += "[uv6] "; + if (mesh.uv7.Length > 0) attr += "[uv7] "; + if (mesh.uv8.Length > 0) attr += "[uv8] "; +#endif + if (mesh.boneWeights.Length > 0) attr += "[boneWeights] "; + return attr; + } + +} diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/SkinnedMeshRendererInspector.cs.meta b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/SkinnedMeshRendererInspector.cs.meta new file mode 100644 index 0000000..5d0e921 --- /dev/null +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/SkinnedMeshRendererInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e27c6d4aff57a454292d44ec5fab325f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/TransformInspector.cs b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/TransformInspector.cs new file mode 100644 index 0000000..c475a8c --- /dev/null +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/TransformInspector.cs @@ -0,0 +1,50 @@ +//https://forum.unity.com/threads/extending-instead-of-replacing-built-in-inspectors.407612/ +using System; +using System.Reflection; +using UnityEngine; +using UnityEditor; + +[CustomEditor(typeof(Transform), true)] +[CanEditMultipleObjects] +public class TransformInspector : InspectorExt +{ + Transform transform; + + bool s_ShowInformation = false; + + protected override string defaultEditorName => "UnityEditor.TransformInspector, UnityEditor"; + + public override void OnEnable() + { + base.OnEnable(); + transform = target as Transform; + s_ShowInformation = false; + } + + public override void OnDisable() + { + base.OnDisable(); + s_ShowInformation = false; + } + + public override void OnInspectorGUI() + { + EditorGUILayout.LabelField("Local Space", EditorStyles.boldLabel); + defaultEditor.OnInspectorGUI(); + + if(BeginMore()) + { + // + EditorGUILayout.LabelField("World Space", EditorStyles.boldLabel); + + GUI.enabled = false; + + EditorGUILayout.Vector3Field("Position", transform.position); + EditorGUILayout.Vector3Field("Rotation", transform.rotation.ToEuler() * Mathf.Rad2Deg); + EditorGUILayout.Vector3Field("Scale", transform.lossyScale); + + GUI.enabled = true; + } + EndMore(); + } +} \ No newline at end of file diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/TransformInspector.cs.meta b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/TransformInspector.cs.meta new file mode 100644 index 0000000..bd8715e --- /dev/null +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Editor/InspectorExtends/TransformInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 96be6f39599da8249ac5d7ab713e15ce +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Examples/CustomHandles.unity b/UnityCollection/Assets/Tools/EditorGUIHelper/Examples/CustomHandles.unity index 9abe0be..85c5f27 100644 --- a/UnityCollection/Assets/Tools/EditorGUIHelper/Examples/CustomHandles.unity +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Examples/CustomHandles.unity @@ -206,13 +206,106 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 316520961} - m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalRotation: {x: 0.82503605, y: -0.35501626, z: -0.15873699, w: 0.40997747} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 145.682, y: 42.03499, z: 60.095993} +--- !u!1 &1008144745 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1008144749} + - component: {fileID: 1008144748} + - component: {fileID: 1008144747} + - component: {fileID: 1008144746} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &1008144746 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1008144745} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1008144747 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1008144745} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1008144748 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1008144745} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1008144749 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1008144745} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -4.13, y: 3.36, z: 0.7656574} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1033041003 GameObject: m_ObjectHideFlags: 0 @@ -323,8 +416,158 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1369722875 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1369722879} + - component: {fileID: 1369722878} + - component: {fileID: 1369722877} + - component: {fileID: 1369722876} + m_Layer: 0 + m_Name: Cube (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &1369722876 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1369722875} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1369722877 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1369722875} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1369722878 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1369722875} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1369722879 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1369722875} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -4.13, y: 3.36, z: 0.7656574} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1673605013 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1875505553876386, guid: 66f8cfa9c9939fb4888c87f2dfed3803, type: 3} + propertyPath: m_Name + value: Rifle Mech + objectReference: {fileID: 0} + - target: {fileID: 4064544105661534, guid: 66f8cfa9c9939fb4888c87f2dfed3803, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4064544105661534, guid: 66f8cfa9c9939fb4888c87f2dfed3803, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4064544105661534, guid: 66f8cfa9c9939fb4888c87f2dfed3803, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4064544105661534, guid: 66f8cfa9c9939fb4888c87f2dfed3803, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4064544105661534, guid: 66f8cfa9c9939fb4888c87f2dfed3803, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4064544105661534, guid: 66f8cfa9c9939fb4888c87f2dfed3803, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4064544105661534, guid: 66f8cfa9c9939fb4888c87f2dfed3803, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4064544105661534, guid: 66f8cfa9c9939fb4888c87f2dfed3803, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4064544105661534, guid: 66f8cfa9c9939fb4888c87f2dfed3803, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4064544105661534, guid: 66f8cfa9c9939fb4888c87f2dfed3803, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4064544105661534, guid: 66f8cfa9c9939fb4888c87f2dfed3803, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 66f8cfa9c9939fb4888c87f2dfed3803, type: 3} --- !u!1 &1760453184 GameObject: m_ObjectHideFlags: 0 diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Examples/Editor.meta b/UnityCollection/Assets/Tools/EditorGUIHelper/Examples/Editor.meta deleted file mode 100644 index f0bcd1b..0000000 --- a/UnityCollection/Assets/Tools/EditorGUIHelper/Examples/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 95936c00fcd584241aa27d9ae4a92411 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Examples/Editor/RotationLimitAngleInspector.cs b/UnityCollection/Assets/Tools/EditorGUIHelper/Examples/Editor/RotationLimitAngleInspector.cs deleted file mode 100644 index 344f1de..0000000 --- a/UnityCollection/Assets/Tools/EditorGUIHelper/Examples/Editor/RotationLimitAngleInspector.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEditor; - -[CustomEditor(typeof(RotationLimitAngle))] -public class RotationLimitAngleInspector : Editor -{ - - void OnSceneGUI() - { - RotationLimitAngle script = target as RotationLimitAngle; - if (script == null) - return; - Vector3 axis = script.axis.normalized; - Vector3 v = new Vector3(axis.y, axis.z, axis.x); - Vector3 cross = Vector3.Cross(axis, v).normalized; - Quaternion minRotation = Quaternion.AngleAxis(script.min, axis); - float min = script.min; - min = EditorHandlesHelper.ScaleValueHandle(min - , script.transform.position + minRotation * cross - , Quaternion.AngleAxis(script.min, axis) * Quaternion.LookRotation(Vector3.up) - , 0.5f - , Handles.CylinderHandleCap, -10); - script.min = Mathf.Clamp(min, 0, 360); - } -} \ No newline at end of file diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Examples/Editor/RotationLimitAngleInspector.cs.meta b/UnityCollection/Assets/Tools/EditorGUIHelper/Examples/Editor/RotationLimitAngleInspector.cs.meta deleted file mode 100644 index 9ff0c8e..0000000 --- a/UnityCollection/Assets/Tools/EditorGUIHelper/Examples/Editor/RotationLimitAngleInspector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: ead887cac09c8ff47a9dff8eab8acd44 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Icons.meta b/UnityCollection/Assets/Tools/EditorGUIHelper/Icons.meta new file mode 100644 index 0000000..1aa955d --- /dev/null +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Icons.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9314c9f4c2c8e8a489be132162fad72c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Icons/Bounds.png b/UnityCollection/Assets/Tools/EditorGUIHelper/Icons/Bounds.png new file mode 100644 index 0000000..da89632 Binary files /dev/null and b/UnityCollection/Assets/Tools/EditorGUIHelper/Icons/Bounds.png differ diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/Icons/Bounds.png.meta b/UnityCollection/Assets/Tools/EditorGUIHelper/Icons/Bounds.png.meta new file mode 100644 index 0000000..0c49770 --- /dev/null +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/Icons/Bounds.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 834cfc1a7caf00b4e83e749591e84459 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/MinMaxSliderAttribute/Editor.meta b/UnityCollection/Assets/Tools/EditorGUIHelper/MinMaxSliderAttribute/Editor.meta index 1af64de..0fbfc05 100644 --- a/UnityCollection/Assets/Tools/EditorGUIHelper/MinMaxSliderAttribute/Editor.meta +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/MinMaxSliderAttribute/Editor.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: b775fb7e3290d804d8520dc75023beca +guid: fbe331826f9610d4b8bfba6374b10098 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/MinMaxSliderAttribute/Editor/MinMaxSliderDrawer.cs.meta b/UnityCollection/Assets/Tools/EditorGUIHelper/MinMaxSliderAttribute/Editor/MinMaxSliderDrawer.cs.meta index 894a325..7efaf04 100644 --- a/UnityCollection/Assets/Tools/EditorGUIHelper/MinMaxSliderAttribute/Editor/MinMaxSliderDrawer.cs.meta +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/MinMaxSliderAttribute/Editor/MinMaxSliderDrawer.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e5809f5684a7a0b4c904bbbaa597b4ec +guid: 2418136676909034b8638efdc91a215e MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/UnityCollection/Assets/Tools/EditorGUIHelper/MinMaxSliderAttribute/MinMaxSliderAttribute.cs.meta b/UnityCollection/Assets/Tools/EditorGUIHelper/MinMaxSliderAttribute/MinMaxSliderAttribute.cs.meta index 92c7392..ca58275 100644 --- a/UnityCollection/Assets/Tools/EditorGUIHelper/MinMaxSliderAttribute/MinMaxSliderAttribute.cs.meta +++ b/UnityCollection/Assets/Tools/EditorGUIHelper/MinMaxSliderAttribute/MinMaxSliderAttribute.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ad7028c6eedb19e47ab5d455a06e48f5 +guid: 293fbbe23cf64d94885e043ab4f2aa0d MonoImporter: externalObjects: {} serializedVersion: 2 -- cgit v1.1-26-g67d0