Repository navigation
Expand file tree
/
Copy pathCEditorProjectView_SetSortOrder.cs
More file actions
68 lines (55 loc) · 2.05 KB
/
Copy pathCEditorProjectView_SetSortOrder.cs
File metadata and controls
68 lines (55 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System.IO;
using System.Text;
using System.Collections.Generic;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
public class CEditorProjectView_SetSortOrder : Editor
{
static private LinkedList<Transform> _listObject = new LinkedList<Transform>();
[MenuItem( "GameObject/StrixTool/Set SortOrder/ - 1", false, 0 )]
static public void DoSetSortOrder_Minus_1() { ProcSetSortOrder( -1 ); }
[MenuItem( "GameObject/StrixTool/Set SortOrder/ - 10", false, 1 )]
static public void DoSetSortOrder_Minus_10() { ProcSetSortOrder( -10 ); }
[MenuItem( "GameObject/StrixTool/Set SortOrder/ - 100", false, 2 )]
static public void DoSetSortOrder_Minus_100() { ProcSetSortOrder( -100 ); }
[MenuItem( "GameObject/StrixTool/Set SortOrder/ + 1", false, 3 )]
static public void DoSetSortOrder_Plus_1() { ProcSetSortOrder( 1 ); }
[MenuItem( "GameObject/StrixTool/Set SortOrder/ + 10", false, 4 )]
static public void DoSetSortOrder_Plus_10() { ProcSetSortOrder( 10 ); }
[MenuItem( "GameObject/StrixTool/Set SortOrder/ + 100", false, 5 )]
static public void DoSetSortOrder_Plus_100() { ProcSetSortOrder( 100 ); }
static private void ProcSetSortOrder(int iSortOrderOffset)
{
if (Init_And_CheckIsReady() == false) return;
while (_listObject.Count != 0)
{
Transform pTransTarget = _listObject.First.Value;
_listObject.RemoveFirst();
SetSortOrder( pTransTarget, iSortOrderOffset );
}
}
static private bool Init_And_CheckIsReady()
{
_listObject.Clear();
if (Selection.gameObjects == null)
return false;
for (int i = 0; i < Selection.gameObjects.Length; i++)
{
Transform[] arrTransform = Selection.gameObjects[i].GetComponentsInChildren<Transform>();
for(int j = 0; j < arrTransform.Length; j++)
{
if (_listObject.Contains( arrTransform[j] ) == false)
_listObject.AddLast( arrTransform[j] );
}
}
return true;
}
static private void SetSortOrder(Transform pObject, int iSortOrderOffset)
{
Renderer pRenderer = pObject.GetComponent<Renderer>();
if (pRenderer != null)
pRenderer.sortingOrder += iSortOrderOffset;
}
}
#endif