Skip to content

Commit 6fc57e7

Browse files
Squashed commit of the following:
commit e5bcd6c Author: Jon McCreadie <[email protected]> Date: Tue Mar 19 15:55:01 2024 +0000 Update GizmoTool.cs Add method that returns the correct mesh to draw and pass it to the relevant gizmo functions. commit 389cf2f Author: Jon McCreadie <[email protected]> Date: Tue Mar 19 15:53:16 2024 +0000 Update GizmoDrawerInspector.cs * Add new serialized property. * Fix spelling mistake. * Add logic to show relevant mesh options. commit 1eddbce Author: Jon McCreadie <[email protected]> Date: Tue Mar 19 15:50:38 2024 +0000 Update GizmoDrawer.cs Add use mesh on filter bool.
1 parent 41bf4c2 commit 6fc57e7

File tree

3 files changed

+40
-7
lines changed

3 files changed

+40
-7
lines changed

Editor/GizmoDrawer.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public class GizmoDrawer : MonoBehaviour
2929
[HideInInspector] public Mesh mesh;
3030
[HideInInspector] public Vector3 meshRotation;
3131
[HideInInspector] public bool useAttachedTransformValues;
32+
[HideInInspector] public bool useMeshOnFilter;
3233
//Line
3334
[HideInInspector] public Transform targetTransform;
3435
[HideInInspector] public Vector3 targetPosition;

Editor/GizmoDrawerInspector.cs

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using UnityEngine;
22
using UnityEditor;
3+
using System.Runtime.CompilerServices;
34

45
namespace MccDev260.GizmoTool
56
{
@@ -31,7 +32,8 @@ public class GizmoDrawerInspector : Editor
3132
serProp_screenRect,
3233
serProp_texture,
3334
serProp_mat,
34-
serProp_useTransfromVals;
35+
serProp_useTransformVals,
36+
serProp_useMeshOnFilter;
3537
#endregion
3638

3739
GizmoDrawer gizmoDrawer;
@@ -67,7 +69,8 @@ private void OnEnable()
6769
serProp_texture = serializedObject.FindProperty("texture");
6870
serProp_mat = serializedObject.FindProperty("mat");
6971

70-
serProp_useTransfromVals = serializedObject.FindProperty("useAttachedTransformValues");
72+
serProp_useTransformVals = serializedObject.FindProperty("useAttachedTransformValues");
73+
serProp_useMeshOnFilter = serializedObject.FindProperty("useMeshOnFilter");
7174
}
7275

7376
public override void OnInspectorGUI()
@@ -142,10 +145,19 @@ static void DrawInspector(GizmoType type, GizmoDrawerInspector editor, out bool
142145
showSingleOrigin = true;
143146
showColour = true;
144147

145-
EditorGUILayout.PropertyField(editor.serProp_mesh);
146-
EditorGUILayout.PropertyField(editor.serProp_useTransfromVals);
148+
if (ShowMeshOptions(editor.gizmoDrawer))
149+
{
150+
EditorGUILayout.PropertyField(editor.serProp_mesh);
151+
}
152+
153+
if (editor.gizmoDrawer.transform.GetComponent<MeshFilter>())
154+
{
155+
EditorGUILayout.PropertyField(editor.serProp_useMeshOnFilter);
156+
}
157+
158+
EditorGUILayout.PropertyField(editor.serProp_useTransformVals);
147159

148-
if (editor.serProp_useTransfromVals.boolValue == true) return;
160+
if (editor.serProp_useTransformVals.boolValue == true) return;
149161

150162
EditorGUILayout.PropertyField(editor.serProp_meshRot);
151163
EditorGUILayout.PropertyField(editor.serProp_vec3Scale);
@@ -205,6 +217,14 @@ static bool ShowOriginOptions(GizmoDrawer drawer)
205217

206218
return true;
207219
}
220+
221+
static bool ShowMeshOptions(GizmoDrawer drawer)
222+
{
223+
if (drawer.GetComponent<MeshFilter>() && drawer.useMeshOnFilter)
224+
return false;
225+
226+
return true;
227+
}
208228
}
209229
#endif
210230
}

Editor/GizmoTool.cs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,14 @@ internal static void DrawGizmo(GizmoDrawer drawer)
5656
if (drawer.useAttachedTransformValues)
5757
drawer.originTransform = drawer.transform;
5858

59-
Gizmos.DrawMesh(drawer.mesh, OriginPosition(drawer), MeshRotation(drawer), MeshScale(drawer), drawer.gizmoColor);
59+
Gizmos.DrawMesh(GetMesh(drawer), OriginPosition(drawer), MeshRotation(drawer), MeshScale(drawer), drawer.gizmoColor);
6060
break;
6161

6262
case GizmoType.WireMesh:
6363
if (drawer.useAttachedTransformValues)
6464
drawer.originTransform = drawer.transform;
6565

66-
Gizmos.DrawWireMesh(drawer.mesh, OriginPosition(drawer), MeshRotation(drawer), MeshScale(drawer), drawer.gizmoColor);
66+
Gizmos.DrawWireMesh(GetMesh(drawer), OriginPosition(drawer), MeshRotation(drawer), MeshScale(drawer), drawer.gizmoColor);
6767
break;
6868

6969
case GizmoType.Line:
@@ -154,6 +154,18 @@ static Vector3 MeshScale(GizmoDrawer drawer)
154154

155155
return drawer.scale;
156156
}
157+
158+
static Mesh GetMesh(GizmoDrawer drawer)
159+
{
160+
var filter = drawer.transform.GetComponent<MeshFilter>();
161+
162+
if (filter && drawer.useMeshOnFilter)
163+
{
164+
return filter.sharedMesh;
165+
}
166+
167+
return drawer.mesh;
168+
}
157169
}
158170
}
159171
#endif

0 commit comments

Comments
 (0)