Skip to content

Commit 742f588

Browse files
committed
Update IsoSpriteSortingEditor to use SerializedProperties
Update Line Drawing
1 parent dd4d1a7 commit 742f588

File tree

2 files changed

+38
-28
lines changed

2 files changed

+38
-28
lines changed

Assets/Scenes/DemoScene.unity

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,8 @@ MonoBehaviour:
226226
isMovable: 1
227227
renderBelowAll: 0
228228
sortType: 0
229-
SorterPositionOffset: {x: 0, y: -1.6350486, z: 0}
230-
SorterPositionOffset2: {x: 0, y: 0, z: 0}
229+
SorterPositionOffset: {x: 0, y: -1.6350486}
230+
SorterPositionOffset2: {x: 0, y: 0}
231231
renderersToSort:
232232
- {fileID: 390935947}
233233
--- !u!58 &390935950
@@ -344,8 +344,8 @@ MonoBehaviour:
344344
isMovable: 1
345345
renderBelowAll: 0
346346
sortType: 1
347-
SorterPositionOffset: {x: 2.2763543, y: 0.1265924, z: 0}
348-
SorterPositionOffset2: {x: -2.3427062, y: -1.3827682, z: 0}
347+
SorterPositionOffset: {x: 2.2763543, y: 0.1265924}
348+
SorterPositionOffset2: {x: -2.3427062, y: -1.3827682}
349349
renderersToSort:
350350
- {fileID: 516553217}
351351
--- !u!212 &516553217
@@ -408,7 +408,7 @@ Transform:
408408
m_PrefabAsset: {fileID: 0}
409409
m_GameObject: {fileID: 516553214}
410410
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
411-
m_LocalPosition: {x: -6.36, y: -0.94, z: 13.285156}
411+
m_LocalPosition: {x: -6.36, y: -0.94, z: 0}
412412
m_LocalScale: {x: 1, y: 1, z: 1}
413413
m_ConstrainProportionsScale: 0
414414
m_Children: []
@@ -478,8 +478,8 @@ MonoBehaviour:
478478
isMovable: 1
479479
renderBelowAll: 0
480480
sortType: 1
481-
SorterPositionOffset: {x: 2.3606417, y: -1.3737345, z: 0}
482-
SorterPositionOffset2: {x: -2.3105102, y: 0.19493532, z: 0}
481+
SorterPositionOffset: {x: 2.3606417, y: -1.3737345}
482+
SorterPositionOffset2: {x: -2.3105102, y: 0.19493532}
483483
renderersToSort:
484484
- {fileID: 548565859}
485485
--- !u!212 &548565859
@@ -542,7 +542,7 @@ Transform:
542542
m_PrefabAsset: {fileID: 0}
543543
m_GameObject: {fileID: 548565856}
544544
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
545-
m_LocalPosition: {x: 2.8, y: -2.28, z: 13.285156}
545+
m_LocalPosition: {x: 2.8, y: -2.28, z: 0}
546546
m_LocalScale: {x: 1, y: 1, z: 1}
547547
m_ConstrainProportionsScale: 0
548548
m_Children: []
@@ -745,8 +745,8 @@ MonoBehaviour:
745745
isMovable: 1
746746
renderBelowAll: 0
747747
sortType: 0
748-
SorterPositionOffset: {x: 0.12794042, y: -2.6825585, z: 0}
749-
SorterPositionOffset2: {x: 0, y: 0, z: 0}
748+
SorterPositionOffset: {x: 0.12794042, y: -2.6825585}
749+
SorterPositionOffset2: {x: 0, y: 0}
750750
renderersToSort:
751751
- {fileID: 1750251657}
752752
--- !u!212 &1750251657
@@ -809,7 +809,7 @@ Transform:
809809
m_PrefabAsset: {fileID: 0}
810810
m_GameObject: {fileID: 1750251654}
811811
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
812-
m_LocalPosition: {x: -3.78, y: -0.1, z: 13.285156}
812+
m_LocalPosition: {x: -3.78, y: -0.1, z: 0}
813813
m_LocalScale: {x: 1, y: 1, z: 1}
814814
m_ConstrainProportionsScale: 0
815815
m_Children: []
@@ -866,8 +866,8 @@ MonoBehaviour:
866866
isMovable: 1
867867
renderBelowAll: 0
868868
sortType: 0
869-
SorterPositionOffset: {x: 0.12794018, y: -2.6825585, z: 0}
870-
SorterPositionOffset2: {x: 0, y: 0, z: 0}
869+
SorterPositionOffset: {x: 0.12794018, y: -2.6825585}
870+
SorterPositionOffset2: {x: 0, y: 0}
871871
renderersToSort:
872872
- {fileID: 1786415549}
873873
--- !u!212 &1786415549
@@ -930,7 +930,7 @@ Transform:
930930
m_PrefabAsset: {fileID: 0}
931931
m_GameObject: {fileID: 1786415546}
932932
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
933-
m_LocalPosition: {x: 5.65, y: 0.84, z: 13.285156}
933+
m_LocalPosition: {x: 5.65, y: 0.84, z: 0}
934934
m_LocalScale: {x: 1, y: 1, z: 1}
935935
m_ConstrainProportionsScale: 0
936936
m_Children: []

Assets/Scripts/IsoSpriteSortingEditor.cs

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,39 @@
66

77
[CustomEditor(typeof(IsoSpriteSorting))]
88
public class IsoSpriteSortingEditor : Editor {
9+
SerializedProperty sorterPositionOffset;
10+
SerializedProperty sorterPositionOffset2;
11+
12+
private void OnEnable() {
13+
sorterPositionOffset = serializedObject.FindProperty("SorterPositionOffset");
14+
sorterPositionOffset2 = serializedObject.FindProperty("SorterPositionOffset2");
15+
}
16+
917
public void OnSceneGUI() {
10-
IsoSpriteSorting myTarget = (IsoSpriteSorting)target;
18+
IsoSpriteSorting sorter = (IsoSpriteSorting)target;
1119

12-
myTarget.SorterPositionOffset = Handles.FreeMoveHandle(
13-
myTarget.transform.position + (Vector3)myTarget.SorterPositionOffset,
20+
serializedObject.Update();
21+
EditorGUI.BeginChangeCheck();
22+
sorterPositionOffset.vector2Value = Handles.FreeMoveHandle(
23+
sorter.transform.position + (Vector3)sorterPositionOffset.vector2Value,
1424
Quaternion.identity,
15-
0.08f * HandleUtility.GetHandleSize(myTarget.transform.position),
25+
0.08f * HandleUtility.GetHandleSize(sorter.transform.position),
1626
Vector3.zero,
1727
Handles.DotHandleCap
18-
) - myTarget.transform.position;
19-
if (myTarget.sortType == IsoSpriteSorting.SortType.Line) {
20-
myTarget.SorterPositionOffset2 = Handles.FreeMoveHandle(
21-
myTarget.transform.position + (Vector3)myTarget.SorterPositionOffset2,
28+
) - sorter.transform.position;
29+
if (sorter.sortType == IsoSpriteSorting.SortType.Line) {
30+
sorterPositionOffset2.vector2Value = Handles.FreeMoveHandle(
31+
sorter.transform.position + (Vector3)sorterPositionOffset2.vector2Value,
2232
Quaternion.identity,
23-
0.08f * HandleUtility.GetHandleSize(myTarget.transform.position),
33+
0.08f * HandleUtility.GetHandleSize(sorter.transform.position),
2434
Vector3.zero,
2535
Handles.DotHandleCap
26-
) - myTarget.transform.position;
27-
Handles.DrawLine(myTarget.transform.position + (Vector3)myTarget.SorterPositionOffset, myTarget.transform.position + (Vector3)myTarget.SorterPositionOffset2);
36+
) - sorter.transform.position;
37+
Vector2 pos = sorter.transform.position;
38+
Handles.DrawLine(pos + sorterPositionOffset.vector2Value, pos + sorterPositionOffset2.vector2Value);
2839
}
29-
if (GUI.changed) {
30-
Undo.RecordObject(target, "Updated Sorting Offset");
31-
EditorUtility.SetDirty(target);
40+
if (EditorGUI.EndChangeCheck()) {
41+
serializedObject.ApplyModifiedProperties();
3242
}
3343
}
3444

0 commit comments

Comments
 (0)