com.wallstop-studios.unity-helpers 2.0.0-rc75.4 → 2.0.0-rc75.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -180,6 +180,7 @@
180
180
  return;
181
181
  }
182
182
 
183
+ List<string> needReprocessing = new();
183
184
  string lastProcessed = null;
184
185
  try
185
186
  {
@@ -224,6 +225,10 @@
224
225
  {
225
226
  newImporters.Add(newImporter);
226
227
  }
228
+ else
229
+ {
230
+ needReprocessing.Add(file);
231
+ }
227
232
  }
228
233
  }
229
234
  finally
@@ -237,6 +242,33 @@
237
242
  AssetDatabase.Refresh();
238
243
  }
239
244
 
245
+ if (needReprocessing.Any())
246
+ {
247
+ newImporters.Clear();
248
+ AssetDatabase.StartAssetEditing();
249
+ try
250
+ {
251
+ foreach (string file in needReprocessing)
252
+ {
253
+ TextureImporter newImporter = ProcessSprite(file);
254
+ if (newImporter != null)
255
+ {
256
+ newImporters.Add(newImporter);
257
+ }
258
+ }
259
+ }
260
+ finally
261
+ {
262
+ AssetDatabase.StopAssetEditing();
263
+ foreach (TextureImporter newImporter in newImporters)
264
+ {
265
+ newImporter.SaveAndReimport();
266
+ }
267
+ AssetDatabase.SaveAssets();
268
+ AssetDatabase.Refresh();
269
+ }
270
+ }
271
+
240
272
  this.Log($"{newImporters.Count} sprites processed successfully.");
241
273
  }
242
274
  catch (Exception e)
@@ -559,7 +559,6 @@ namespace WallstopStudios.UnityHelpers.Editor.Sprites
559
559
  return;
560
560
  }
561
561
 
562
- List<TextureImporter> importers = new();
563
562
  AssetDatabase.StartAssetEditing();
564
563
  try
565
564
  {
@@ -580,33 +579,12 @@ namespace WallstopStudios.UnityHelpers.Editor.Sprites
580
579
  }
581
580
  }
582
581
  }
583
-
584
- for (int i = 0; i < updatedImporters.Count; i++)
585
- {
586
- TextureImporter importer = updatedImporters[i];
587
- EditorUtility.DisplayProgressBar(
588
- "Updating Sprite Settings",
589
- $"Processing '{Path.GetFileName(importer.assetPath)}' ({i + 1}/{updatedImporters.Count})",
590
- (float)(i + 1) / updatedImporters.Count
591
- );
592
- try
593
- {
594
- importer.SaveAndReimport();
595
- importers.Add(importer);
596
- }
597
- catch (Exception ex)
598
- {
599
- this.LogError(
600
- $"Failed to save and reimport asset '{importer.assetPath}': {ex.Message}"
601
- );
602
- }
603
- }
604
582
  }
605
583
  finally
606
584
  {
607
585
  AssetDatabase.StopAssetEditing();
608
586
  EditorUtility.ClearProgressBar();
609
- foreach (TextureImporter importer in importers)
587
+ foreach (TextureImporter importer in updatedImporters)
610
588
  {
611
589
  importer.SaveAndReimport();
612
590
  }
@@ -778,6 +756,21 @@ namespace WallstopStudios.UnityHelpers.Editor.Sprites
778
756
  TextureImporterSettings settings = new();
779
757
  textureImporter.ReadTextureSettings(settings);
780
758
 
759
+ if (spriteData.applySpriteMode)
760
+ {
761
+ if (textureImporter.spriteImportMode != spriteData.spriteMode)
762
+ {
763
+ textureImporter.spriteImportMode = spriteData.spriteMode;
764
+ changed = true;
765
+ }
766
+
767
+ if (settings.spriteMode != (int)spriteData.spriteMode)
768
+ {
769
+ settings.spriteMode = (int)spriteData.spriteMode;
770
+ settingsChanged = true;
771
+ }
772
+ }
773
+
781
774
  if (spriteData.applyPixelsPerUnit)
782
775
  {
783
776
  if (textureImporter.spritePixelsPerUnit != spriteData.pixelsPerUnit)
@@ -785,6 +778,12 @@ namespace WallstopStudios.UnityHelpers.Editor.Sprites
785
778
  textureImporter.spritePixelsPerUnit = spriteData.pixelsPerUnit;
786
779
  changed = true;
787
780
  }
781
+
782
+ if (settings.spritePixelsPerUnit != spriteData.pixelsPerUnit)
783
+ {
784
+ settings.spritePixelsPerUnit = spriteData.pixelsPerUnit;
785
+ settingsChanged = true;
786
+ }
788
787
  }
789
788
 
790
789
  if (spriteData.applyPivot)
@@ -809,6 +808,11 @@ namespace WallstopStudios.UnityHelpers.Editor.Sprites
809
808
  textureImporter.mipmapEnabled = spriteData.generateMipMaps;
810
809
  changed = true;
811
810
  }
811
+ if (settings.mipmapEnabled != spriteData.generateMipMaps)
812
+ {
813
+ settings.mipmapEnabled = spriteData.generateMipMaps;
814
+ settingsChanged = true;
815
+ }
812
816
  }
813
817
 
814
818
  if (spriteData.applyCrunchCompression)
@@ -831,6 +835,11 @@ namespace WallstopStudios.UnityHelpers.Editor.Sprites
831
835
 
832
836
  if (spriteData.applyAlphaIsTransparency)
833
837
  {
838
+ if (textureImporter.alphaIsTransparency != spriteData.alphaIsTransparency)
839
+ {
840
+ textureImporter.alphaIsTransparency = spriteData.alphaIsTransparency;
841
+ changed = true;
842
+ }
834
843
  if (settings.alphaIsTransparency != spriteData.alphaIsTransparency)
835
844
  {
836
845
  settings.alphaIsTransparency = spriteData.alphaIsTransparency;
@@ -840,18 +849,15 @@ namespace WallstopStudios.UnityHelpers.Editor.Sprites
840
849
 
841
850
  if (spriteData.applyReadWriteEnabled)
842
851
  {
843
- if (settings.readable != spriteData.readWriteEnabled)
852
+ if (textureImporter.isReadable != spriteData.readWriteEnabled)
844
853
  {
845
- settings.readable = spriteData.readWriteEnabled;
846
- settingsChanged = true;
854
+ textureImporter.isReadable = spriteData.readWriteEnabled;
855
+ changed = true;
847
856
  }
848
- }
849
857
 
850
- if (spriteData.applySpriteMode)
851
- {
852
- if (settings.spriteMode != (int)spriteData.spriteMode)
858
+ if (settings.readable != spriteData.readWriteEnabled)
853
859
  {
854
- settings.spriteMode = (int)spriteData.spriteMode;
860
+ settings.readable = spriteData.readWriteEnabled;
855
861
  settingsChanged = true;
856
862
  }
857
863
  }
@@ -867,6 +873,11 @@ namespace WallstopStudios.UnityHelpers.Editor.Sprites
867
873
 
868
874
  if (spriteData.applyWrapMode)
869
875
  {
876
+ if (textureImporter.wrapMode != spriteData.wrapMode)
877
+ {
878
+ textureImporter.wrapMode = spriteData.wrapMode;
879
+ changed = true;
880
+ }
870
881
  if (settings.wrapMode != spriteData.wrapMode)
871
882
  {
872
883
  settings.wrapMode = spriteData.wrapMode;
@@ -876,6 +887,11 @@ namespace WallstopStudios.UnityHelpers.Editor.Sprites
876
887
 
877
888
  if (spriteData.applyFilterMode)
878
889
  {
890
+ if (textureImporter.filterMode != spriteData.filterMode)
891
+ {
892
+ textureImporter.filterMode = spriteData.filterMode;
893
+ changed = true;
894
+ }
879
895
  if (settings.filterMode != spriteData.filterMode)
880
896
  {
881
897
  settings.filterMode = spriteData.filterMode;
@@ -886,6 +902,7 @@ namespace WallstopStudios.UnityHelpers.Editor.Sprites
886
902
  if (settingsChanged)
887
903
  {
888
904
  textureImporter.SetTextureSettings(settings);
905
+ textureImporter.SaveAndReimport();
889
906
  }
890
907
 
891
908
  return changed || settingsChanged;
@@ -15,7 +15,10 @@
15
15
 
16
16
  public StringInList(Type type, string methodName)
17
17
  {
18
- MethodInfo method = type.GetMethod(methodName);
18
+ MethodInfo method = type.GetMethod(
19
+ methodName,
20
+ BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic
21
+ );
19
22
  if (method != null)
20
23
  {
21
24
  List = method.Invoke(null, null) as string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "com.wallstop-studios.unity-helpers",
3
- "version": "2.0.0-rc75.4",
3
+ "version": "2.0.0-rc75.6",
4
4
  "displayName": "Unity Helpers",
5
5
  "description": "Various Unity Helper Library",
6
6
  "dependencies": {},
@@ -67,6 +67,8 @@
67
67
 
68
68
 
69
69
 
70
+
71
+
70
72
 
71
73
 
72
74