@@ -22,6 +22,8 @@ public class SpriteAssetEditor : Editor
22
22
private bool _addTag ;
23
23
//添加的标签的名称
24
24
private string _addTagName ;
25
+ //选择
26
+ private Dictionary < SpriteInforGroup , bool > _selectSpriteGroup = new Dictionary < SpriteInforGroup , bool > ( ) ;
25
27
26
28
public void OnEnable ( )
27
29
{
@@ -56,7 +58,7 @@ public override void OnInspectorGUI()
56
58
_spriteAsset . IsStatic = EditorGUILayout . Toggle ( "Static:" , _spriteAsset . IsStatic ) ;
57
59
GUILayout . EndHorizontal ( ) ;
58
60
GUILayout . BeginHorizontal ( ) ;
59
- if ( GUILayout . Button ( "Add Tag" ) )
61
+ if ( GUILayout . Button ( "New Tag" ) )
60
62
{
61
63
_addTag = ! _addTag ;
62
64
}
@@ -91,6 +93,34 @@ public override void OnInspectorGUI()
91
93
}
92
94
GUILayout . EndHorizontal ( ) ;
93
95
}
96
+
97
+ if ( GUILayout . Button ( "Add Tag" ) )
98
+ {
99
+ GenericMenu gm = new GenericMenu ( ) ;
100
+ for ( int n = 0 ; n < _tags . Count ; n ++ )
101
+ {
102
+ string newTag = _tags [ n ] ;
103
+ gm . AddItem ( new GUIContent ( _tags [ n ] ) , false ,
104
+ delegate ( )
105
+ {
106
+ List < SpriteInforGroup > selectGroup = new List < SpriteInforGroup > ( ) ;
107
+ foreach ( var item in _selectSpriteGroup )
108
+ {
109
+ if ( item . Value )
110
+ selectGroup . Add ( item . Key ) ;
111
+ }
112
+
113
+ for ( int j = 0 ; j < selectGroup . Count ; j ++ )
114
+ {
115
+ for ( int i = 0 ; i < selectGroup [ j ] . ListSpriteInfor . Count ; i ++ )
116
+ {
117
+ ChangeTag ( newTag , selectGroup [ j ] . ListSpriteInfor [ i ] ) ;
118
+ }
119
+ }
120
+ } ) ;
121
+ }
122
+ gm . ShowAsContext ( ) ;
123
+ }
94
124
GUILayout . BeginHorizontal ( ) ;
95
125
if ( GUILayout . Button ( "Clear Tag" ) )
96
126
{
@@ -111,6 +141,7 @@ public override void OnInspectorGUI()
111
141
for ( int i = 0 ; i < _spriteAsset . ListSpriteGroup . Count ; i ++ )
112
142
{
113
143
GUILayout . BeginHorizontal ( "HelpBox" ) ;
144
+ _selectSpriteGroup [ _spriteAsset . ListSpriteGroup [ i ] ] = GUILayout . Toggle ( _selectSpriteGroup [ _spriteAsset . ListSpriteGroup [ i ] ] , "" ) ;
114
145
#region 展开与收缩按钮
115
146
if ( GUILayout . Button ( _spriteAsset . ListSpriteGroup [ i ] . Tag , _showIndex == i ? "OL Minus" : "OL Plus" ) )
116
147
{
@@ -233,10 +264,12 @@ private void Init()
233
264
{
234
265
_tags = new List < string > ( ) ;
235
266
_playIndexs = new List < int > ( ) ;
267
+ _selectSpriteGroup . Clear ( ) ;
236
268
for ( int i = 0 ; i < _spriteAsset . ListSpriteGroup . Count ; i ++ )
237
269
{
238
270
_tags . Add ( _spriteAsset . ListSpriteGroup [ i ] . Tag ) ;
239
271
_playIndexs . Add ( 0 ) ;
272
+ _selectSpriteGroup . Add ( _spriteAsset . ListSpriteGroup [ i ] , false ) ;
240
273
}
241
274
_playIndex = 0 ;
242
275
_showIndex = - 1 ;
0 commit comments