com.wallstop-studios.unity-helpers 2.0.0-rc27 → 2.0.0-rc31
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.
- package/.gitattributes +63 -63
- package/.github/workflows/npm-publish.yml +60 -0
- package/.github/workflows/unity-package.yml +101 -0
- package/.github/workflows/unity-tests.yml +38 -0
- package/Editor/AnimationCopier.cs +158 -158
- package/Editor/AnimationCopier.cs.meta +2 -2
- package/Editor/AnimationCreator.cs +262 -262
- package/Editor/AnimationCreator.cs.meta +11 -11
- package/Editor/AnimationEventEditor.cs +887 -887
- package/Editor/AnimatorControllerCopier.cs +162 -162
- package/Editor/AnimatorControllerCopier.cs.meta +2 -2
- package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs +34 -34
- package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs.meta +2 -2
- package/Editor/CustomEditors.meta +2 -2
- package/Editor/EnsureTextureSizeWizard.cs +110 -110
- package/Editor/EnsureTextureSizeWizard.cs.meta +2 -2
- package/Editor/PrefabCheckWizard.cs +165 -165
- package/Editor/PrefabCheckWizard.cs.meta +11 -11
- package/Editor/SpriteSettingsApplier.cs +168 -168
- package/Editor/SpriteSettingsApplier.cs.meta +2 -2
- package/Editor/StringInListeDrawer.cs +56 -56
- package/Editor/TextureResizerWizard.cs +181 -181
- package/Editor/TextureResizerWizard.cs.meta +2 -2
- package/Editor/TextureSettingsApplier.cs +171 -171
- package/Editor/TextureSettingsApplier.cs.meta +2 -2
- package/Editor/Utils/EditorUtilities.cs +22 -22
- package/Editor/Utils/EditorUtilities.cs.meta +11 -11
- package/Editor/Utils/ReadOnlyPropertyDrawer.cs +26 -26
- package/Editor/Utils/ReadOnlyPropertyDrawer.cs.meta +11 -11
- package/Editor/Utils.meta +8 -8
- package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +17 -17
- package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -7
- package/LICENSE +21 -21
- package/LICENSE.md +6 -6
- package/LICENSE.meta +7 -7
- package/README.md +117 -117
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll.meta +33 -33
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml +223 -223
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml.meta +7 -7
- package/Runtime/Binaries/System.Text.Encodings.Web.dll.meta +33 -33
- package/Runtime/Binaries/System.Text.Encodings.Web.xml +935 -935
- package/Runtime/Binaries/System.Text.Encodings.Web.xml.meta +7 -7
- package/Runtime/Binaries/System.Text.Json.dll.meta +33 -33
- package/Runtime/Binaries/System.Text.Json.xml +4829 -4829
- package/Runtime/Binaries/System.Text.Json.xml.meta +7 -7
- package/Runtime/Binaries.meta +8 -8
- package/Runtime/Core/Attributes/AnimationEventAttribute.cs +131 -131
- package/Runtime/Core/Attributes/ChildComponentAttribute.cs +189 -189
- package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
- package/Runtime/Core/Attributes/NotNullAttribute.cs +32 -32
- package/Runtime/Core/Attributes/ParentComponent.cs +184 -184
- package/Runtime/Core/Attributes/ReadOnlyAttribute.cs +6 -6
- package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +14 -14
- package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +119 -119
- package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +101 -101
- package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes.meta +8 -8
- package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +92 -92
- package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +185 -185
- package/Runtime/Core/DataStructure/Adapters/KGuid.cs +305 -305
- package/Runtime/Core/DataStructure/Adapters/KVector2.cs +80 -80
- package/Runtime/Core/DataStructure/Circle.cs +50 -50
- package/Runtime/Core/DataStructure/CyclicBuffer.cs +155 -155
- package/Runtime/Core/DataStructure/ISpatialTree.cs +60 -60
- package/Runtime/Core/DataStructure/ISpatialTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/KDTree.cs +290 -290
- package/Runtime/Core/DataStructure/KDTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/QuadTree.cs +279 -279
- package/Runtime/Core/DataStructure/RTree.cs +336 -336
- package/Runtime/Core/DataStructure/RTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/StringWrapper.cs +91 -91
- package/Runtime/Core/DataStructure/TimedCache.cs +51 -51
- package/Runtime/Core/Extension/AnimatorExtensions.cs +25 -25
- package/Runtime/Core/Extension/CircleExtensions.cs +25 -25
- package/Runtime/Core/Extension/ColorExtensions.cs +338 -338
- package/Runtime/Core/Extension/DictionaryExtensions.cs +251 -251
- package/Runtime/Core/Extension/DirectionExtensions.cs +213 -213
- package/Runtime/Core/Extension/HashSetExtensions.cs +12 -12
- package/Runtime/Core/Extension/IEnumerableExtensions.cs +122 -122
- package/Runtime/Core/Extension/IListExtensions.cs +89 -89
- package/Runtime/Core/Extension/LoggingExtensions.cs +258 -258
- package/Runtime/Core/Extension/RandomExtensions.cs +109 -109
- package/Runtime/Core/Extension/StringExtensions.cs +151 -151
- package/Runtime/Core/Extension/UnityExtensions.cs +1607 -1607
- package/Runtime/Core/Helper/ArrayConverter.cs +39 -39
- package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
- package/Runtime/Core/Helper/AssignUtilities.cs +14 -14
- package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
- package/Runtime/Core/Helper/Enumerables.cs +17 -17
- package/Runtime/Core/Helper/Geometry.cs +43 -43
- package/Runtime/Core/Helper/Helpers.cs +722 -722
- package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
- package/Runtime/Core/Helper/IterationHelpers.cs +32 -32
- package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
- package/Runtime/Core/Helper/LifetimeHelpers.cs +13 -13
- package/Runtime/Core/Helper/Objects.cs +767 -767
- package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
- package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/MathHelpers.cs +30 -30
- package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +388 -388
- package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/TransformHelpers.cs +167 -167
- package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials.meta +2 -2
- package/Runtime/Core/Helper/ReflectionHelpers.cs +152 -152
- package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/SpriteHelpers.cs +86 -86
- package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
- package/Runtime/Core/Helper/StringInList.cs +31 -31
- package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
- package/Runtime/Core/Helper/WallMath.cs +166 -166
- package/Runtime/Core/Math/Line.cs +55 -55
- package/Runtime/Core/Math/Parabola.cs +47 -47
- package/Runtime/Core/Math/PointPolygonCheck.cs +36 -36
- package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
- package/Runtime/Core/Math/Range.cs +92 -92
- package/Runtime/Core/Math/XXHash.cs +310 -310
- package/Runtime/Core/Math/XXHash.cs.meta +11 -11
- package/Runtime/Core/Model/Direction.cs +43 -43
- package/Runtime/Core/OneOf/FastOneOf.cs +152 -152
- package/Runtime/Core/OneOf/None.cs +4 -4
- package/Runtime/Core/Random/AbstractRandom.cs +561 -561
- package/Runtime/Core/Random/DotNetRandom.cs +52 -52
- package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
- package/Runtime/Core/Random/IRandom.cs +160 -160
- package/Runtime/Core/Random/NativePcgRandom.cs +97 -97
- package/Runtime/Core/Random/PRNG.cs +7 -7
- package/Runtime/Core/Random/PRNG.cs.meta +2 -2
- package/Runtime/Core/Random/PcgRandom.cs +149 -149
- package/Runtime/Core/Random/PerlinNoise.cs +369 -369
- package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
- package/Runtime/Core/Random/RandomState.cs +131 -131
- package/Runtime/Core/Random/RandomUtilities.cs +26 -26
- package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
- package/Runtime/Core/Random/RomuDuo.cs +116 -116
- package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
- package/Runtime/Core/Random/SplitMix64.cs +94 -94
- package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
- package/Runtime/Core/Random/SquirrelRandom.cs +84 -84
- package/Runtime/Core/Random/SystemRandom.cs +162 -162
- package/Runtime/Core/Random/ThreadLocalRandom.cs +12 -12
- package/Runtime/Core/Random/UnityRandom.cs +57 -57
- package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
- package/Runtime/Core/Random/WyRandom.cs +121 -121
- package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
- package/Runtime/Core/Random/XorShiftRandom.cs +47 -47
- package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
- package/Runtime/Core/Random/XorShiroRandom.cs +117 -117
- package/Runtime/Core/Random/XorShiroRandom.cs.meta +2 -2
- package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +74 -74
- package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +81 -81
- package/Runtime/Core/Serialization/Serializer.cs +184 -184
- package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +107 -107
- package/Runtime/Protobuf-Net/System.Buffers.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Collections.Immutable.xml +5379 -5379
- package/Runtime/Protobuf-Net/System.Collections.Immutable.xml.meta +7 -7
- package/Runtime/Protobuf-Net/System.Numerics.Vectors.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml +290 -290
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml.meta +7 -7
- package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
- package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
- package/Runtime/UI/LayeredImage.cs +364 -364
- package/Runtime/UI/LayeredImage.cs.meta +2 -2
- package/Runtime/UI.meta +2 -2
- package/Runtime/Utils/AnimationEventEqualityComparer.cs +161 -161
- package/Runtime/Utils/AnimatorEnumStateMachine.cs +88 -88
- package/Runtime/Utils/Buffers.cs +32 -32
- package/Runtime/Utils/CenterPointOffset.cs +30 -30
- package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
- package/Runtime/Utils/CircleLineRenderer.cs +134 -134
- package/Runtime/Utils/CoroutineHandler.cs +4 -4
- package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
- package/Runtime/Utils/MatchColliderToSprite.cs +94 -94
- package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
- package/Runtime/Utils/Oscillator.cs +27 -27
- package/Runtime/Utils/RuntimeSingleton.cs +57 -57
- package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
- package/Runtime/Utils/SetTextureImportData.cs +69 -69
- package/Runtime/Utils/SpriteRendererMetadata.cs +312 -312
- package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
- package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
- package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
- package/Runtime/Utils/TextureScale.cs +179 -179
- package/Runtime/Utils/TextureScale.cs.meta +2 -2
- package/Runtime/WallstopStudios.UnityHelpers.asmdef +13 -13
- package/Tests/Runtime/Attributes/ChildComponentTests.cs +81 -81
- package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
- package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
- package/Tests/Runtime/Attributes/ParentComponentTests.cs +68 -68
- package/Tests/Runtime/Components/RelationalComponentTester.cs +34 -34
- package/Tests/Runtime/Components/RelationalComponentTester.cs.meta +2 -2
- package/Tests/Runtime/Components.meta +2 -2
- package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +324 -324
- package/Tests/Runtime/DataStructures/QuadTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +130 -130
- package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures.meta +8 -8
- package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +439 -439
- package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/IListExtensionTests.cs +76 -76
- package/Tests/Runtime/Extensions/RandomExtensionTests.cs +27 -27
- package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/StringExtensionTests.cs +31 -31
- package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions.meta +2 -2
- package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
- package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/ObjectHelperTests.cs +402 -402
- package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/WallMathTests.cs +233 -233
- package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
- package/Tests/Runtime/Helper.meta +2 -2
- package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +14 -14
- package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +14 -14
- package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/RandomPerformanceTests.cs +139 -139
- package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +37 -37
- package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs.meta +2 -2
- package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +154 -154
- package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +11 -11
- package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +14 -14
- package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +11 -11
- package/Tests/Runtime/Performance.meta +8 -8
- package/Tests/Runtime/Random/DotNetRandomTests.cs +9 -9
- package/Tests/Runtime/Random/DotNetRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/PcgRandomTests.cs +9 -9
- package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/RandomTestBase.cs +787 -787
- package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -11
- package/Tests/Runtime/Random/RomuDuoRandomTests.cs +9 -9
- package/Tests/Runtime/Random/RomuDuoRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/SplitMix64RandomTests.cs +9 -9
- package/Tests/Runtime/Random/SplitMix64RandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/SquirrelRandomTests.cs +14 -14
- package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/SystemRandomTests.cs +10 -10
- package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/UnityRandomTests.cs +9 -9
- package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/WyRandomTests.cs +9 -9
- package/Tests/Runtime/Random/WyRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -9
- package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/XorShiroRandomTests.cs +9 -9
- package/Tests/Runtime/Random/XorShiroRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random.meta +8 -8
- package/Tests/Runtime/Serialization/JsonSerializationTest.cs +84 -84
- package/Tests/Runtime/Serialization/JsonSerializationTest.cs.meta +2 -2
- package/Tests/Runtime/Serialization.meta +2 -2
- package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs +399 -399
- package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs.meta +2 -2
- package/Tests/Runtime/Utils.meta +2 -2
- package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +22 -22
- package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -7
- package/Tests/Runtime.meta +8 -8
- package/package.json +38 -38
|
@@ -1,168 +1,168 @@
|
|
|
1
|
-
namespace UnityHelpers.Editor
|
|
2
|
-
{
|
|
3
|
-
#if UNITY_EDITOR
|
|
4
|
-
using System;
|
|
5
|
-
using System.Collections.Generic;
|
|
6
|
-
using System.IO;
|
|
7
|
-
using System.Linq;
|
|
8
|
-
using Core.Extension;
|
|
9
|
-
using UnityEditor;
|
|
10
|
-
using UnityEngine;
|
|
11
|
-
using Object = UnityEngine.Object;
|
|
12
|
-
|
|
13
|
-
[Serializable]
|
|
14
|
-
public sealed class SpriteSettings
|
|
15
|
-
{
|
|
16
|
-
public int pixelsPerUnit = 100;
|
|
17
|
-
public Vector2 pivot = new(0.5f, 0.5f);
|
|
18
|
-
public SpriteImportMode spriteMode = SpriteImportMode.Single;
|
|
19
|
-
public bool applyWrapMode = true;
|
|
20
|
-
public TextureWrapMode wrapMode = TextureWrapMode.Clamp;
|
|
21
|
-
public bool applyFilterMode = true;
|
|
22
|
-
public FilterMode filterMode = FilterMode.Point;
|
|
23
|
-
public string name;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
public sealed class SpriteSettingsApplier : ScriptableWizard
|
|
27
|
-
{
|
|
28
|
-
public List<Sprite> sprites = new();
|
|
29
|
-
public List<string> spriteFileExtensions = new() { ".png" };
|
|
30
|
-
|
|
31
|
-
[Tooltip(
|
|
32
|
-
"Drag various sprite settings here, where the name property matches a sprite asset name. The first settings with an empty or matching name will be applied to each and every sprite."
|
|
33
|
-
)]
|
|
34
|
-
public List<SpriteSettings> spriteSettings = new() { new SpriteSettings() };
|
|
35
|
-
|
|
36
|
-
[Tooltip(
|
|
37
|
-
"Drag a folder from Unity here to apply the configuration to all settings under it. No sprites are modified if no directories are provided."
|
|
38
|
-
)]
|
|
39
|
-
public List<Object> directories = new();
|
|
40
|
-
|
|
41
|
-
[MenuItem("Tools/Unity Helpers/Sprite Settings Applier")]
|
|
42
|
-
public static void CreateAnimation()
|
|
43
|
-
{
|
|
44
|
-
_ = DisplayWizard<SpriteSettingsApplier>("Sprite Settings Directory Applier", "Set");
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
private void OnWizardCreate()
|
|
48
|
-
{
|
|
49
|
-
HashSet<string> uniqueDirectories = new();
|
|
50
|
-
foreach (Object directory in directories)
|
|
51
|
-
{
|
|
52
|
-
string assetPath = AssetDatabase.GetAssetPath(directory);
|
|
53
|
-
if (Directory.Exists(assetPath))
|
|
54
|
-
{
|
|
55
|
-
_ = uniqueDirectories.Add(assetPath);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
HashSet<string> processedSpritePaths = new();
|
|
60
|
-
Queue<string> directoriesToCheck = new(uniqueDirectories);
|
|
61
|
-
int spriteCount = 0;
|
|
62
|
-
while (0 < directoriesToCheck.Count)
|
|
63
|
-
{
|
|
64
|
-
string directoryPath = directoriesToCheck.Dequeue();
|
|
65
|
-
foreach (string fullFilePath in Directory.EnumerateFiles(directoryPath))
|
|
66
|
-
{
|
|
67
|
-
if (!spriteFileExtensions.Contains(Path.GetExtension(fullFilePath)))
|
|
68
|
-
{
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
int index = fullFilePath.LastIndexOf(
|
|
73
|
-
directoryPath,
|
|
74
|
-
StringComparison.OrdinalIgnoreCase
|
|
75
|
-
);
|
|
76
|
-
if (index < 0)
|
|
77
|
-
{
|
|
78
|
-
continue;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
string filePath = fullFilePath.Substring(index);
|
|
82
|
-
if (
|
|
83
|
-
processedSpritePaths.Add(fullFilePath) && TryUpdateTextureSettings(filePath)
|
|
84
|
-
)
|
|
85
|
-
{
|
|
86
|
-
++spriteCount;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
foreach (string subDirectory in Directory.EnumerateDirectories(directoryPath))
|
|
91
|
-
{
|
|
92
|
-
int index = subDirectory.LastIndexOf(
|
|
93
|
-
directoryPath,
|
|
94
|
-
StringComparison.OrdinalIgnoreCase
|
|
95
|
-
);
|
|
96
|
-
if (index < 0)
|
|
97
|
-
{
|
|
98
|
-
continue;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
directoriesToCheck.Enqueue(subDirectory.Substring(index));
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
foreach (Sprite sprite in sprites)
|
|
106
|
-
{
|
|
107
|
-
if (sprite == null)
|
|
108
|
-
{
|
|
109
|
-
continue;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
string filePath = AssetDatabase.GetAssetPath(sprite);
|
|
113
|
-
if (
|
|
114
|
-
processedSpritePaths.Add(Application.dataPath + filePath)
|
|
115
|
-
&& TryUpdateTextureSettings(filePath)
|
|
116
|
-
)
|
|
117
|
-
{
|
|
118
|
-
++spriteCount;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
this.Log("Processed {0} sprites.", spriteCount);
|
|
123
|
-
if (0 < spriteCount)
|
|
124
|
-
{
|
|
125
|
-
AssetDatabase.Refresh();
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
private bool TryUpdateTextureSettings(string filePath)
|
|
130
|
-
{
|
|
131
|
-
TextureImporter textureImporter = AssetImporter.GetAtPath(filePath) as TextureImporter;
|
|
132
|
-
if (textureImporter == null)
|
|
133
|
-
{
|
|
134
|
-
return false;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
SpriteSettings spriteData = spriteSettings.FirstOrDefault(settings =>
|
|
138
|
-
string.IsNullOrEmpty(settings.name) || filePath.Contains(settings.name)
|
|
139
|
-
);
|
|
140
|
-
if (spriteData == null)
|
|
141
|
-
{
|
|
142
|
-
return false;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
textureImporter.spritePivot = spriteData.pivot;
|
|
146
|
-
textureImporter.spritePixelsPerUnit = spriteData.pixelsPerUnit;
|
|
147
|
-
|
|
148
|
-
TextureImporterSettings settings = new();
|
|
149
|
-
textureImporter.ReadTextureSettings(settings);
|
|
150
|
-
settings.spriteAlignment = (int)SpriteAlignment.Custom;
|
|
151
|
-
settings.spriteMode = (int)spriteData.spriteMode;
|
|
152
|
-
if (spriteData.applyWrapMode)
|
|
153
|
-
{
|
|
154
|
-
settings.wrapMode = spriteData.wrapMode;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
if (spriteData.applyFilterMode)
|
|
158
|
-
{
|
|
159
|
-
settings.filterMode = spriteData.filterMode;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
textureImporter.SetTextureSettings(settings);
|
|
163
|
-
textureImporter.SaveAndReimport();
|
|
164
|
-
return true;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
#endif
|
|
168
|
-
}
|
|
1
|
+
namespace UnityHelpers.Editor
|
|
2
|
+
{
|
|
3
|
+
#if UNITY_EDITOR
|
|
4
|
+
using System;
|
|
5
|
+
using System.Collections.Generic;
|
|
6
|
+
using System.IO;
|
|
7
|
+
using System.Linq;
|
|
8
|
+
using Core.Extension;
|
|
9
|
+
using UnityEditor;
|
|
10
|
+
using UnityEngine;
|
|
11
|
+
using Object = UnityEngine.Object;
|
|
12
|
+
|
|
13
|
+
[Serializable]
|
|
14
|
+
public sealed class SpriteSettings
|
|
15
|
+
{
|
|
16
|
+
public int pixelsPerUnit = 100;
|
|
17
|
+
public Vector2 pivot = new(0.5f, 0.5f);
|
|
18
|
+
public SpriteImportMode spriteMode = SpriteImportMode.Single;
|
|
19
|
+
public bool applyWrapMode = true;
|
|
20
|
+
public TextureWrapMode wrapMode = TextureWrapMode.Clamp;
|
|
21
|
+
public bool applyFilterMode = true;
|
|
22
|
+
public FilterMode filterMode = FilterMode.Point;
|
|
23
|
+
public string name;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public sealed class SpriteSettingsApplier : ScriptableWizard
|
|
27
|
+
{
|
|
28
|
+
public List<Sprite> sprites = new();
|
|
29
|
+
public List<string> spriteFileExtensions = new() { ".png" };
|
|
30
|
+
|
|
31
|
+
[Tooltip(
|
|
32
|
+
"Drag various sprite settings here, where the name property matches a sprite asset name. The first settings with an empty or matching name will be applied to each and every sprite."
|
|
33
|
+
)]
|
|
34
|
+
public List<SpriteSettings> spriteSettings = new() { new SpriteSettings() };
|
|
35
|
+
|
|
36
|
+
[Tooltip(
|
|
37
|
+
"Drag a folder from Unity here to apply the configuration to all settings under it. No sprites are modified if no directories are provided."
|
|
38
|
+
)]
|
|
39
|
+
public List<Object> directories = new();
|
|
40
|
+
|
|
41
|
+
[MenuItem("Tools/Unity Helpers/Sprite Settings Applier")]
|
|
42
|
+
public static void CreateAnimation()
|
|
43
|
+
{
|
|
44
|
+
_ = DisplayWizard<SpriteSettingsApplier>("Sprite Settings Directory Applier", "Set");
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
private void OnWizardCreate()
|
|
48
|
+
{
|
|
49
|
+
HashSet<string> uniqueDirectories = new();
|
|
50
|
+
foreach (Object directory in directories)
|
|
51
|
+
{
|
|
52
|
+
string assetPath = AssetDatabase.GetAssetPath(directory);
|
|
53
|
+
if (Directory.Exists(assetPath))
|
|
54
|
+
{
|
|
55
|
+
_ = uniqueDirectories.Add(assetPath);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
HashSet<string> processedSpritePaths = new();
|
|
60
|
+
Queue<string> directoriesToCheck = new(uniqueDirectories);
|
|
61
|
+
int spriteCount = 0;
|
|
62
|
+
while (0 < directoriesToCheck.Count)
|
|
63
|
+
{
|
|
64
|
+
string directoryPath = directoriesToCheck.Dequeue();
|
|
65
|
+
foreach (string fullFilePath in Directory.EnumerateFiles(directoryPath))
|
|
66
|
+
{
|
|
67
|
+
if (!spriteFileExtensions.Contains(Path.GetExtension(fullFilePath)))
|
|
68
|
+
{
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
int index = fullFilePath.LastIndexOf(
|
|
73
|
+
directoryPath,
|
|
74
|
+
StringComparison.OrdinalIgnoreCase
|
|
75
|
+
);
|
|
76
|
+
if (index < 0)
|
|
77
|
+
{
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
string filePath = fullFilePath.Substring(index);
|
|
82
|
+
if (
|
|
83
|
+
processedSpritePaths.Add(fullFilePath) && TryUpdateTextureSettings(filePath)
|
|
84
|
+
)
|
|
85
|
+
{
|
|
86
|
+
++spriteCount;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
foreach (string subDirectory in Directory.EnumerateDirectories(directoryPath))
|
|
91
|
+
{
|
|
92
|
+
int index = subDirectory.LastIndexOf(
|
|
93
|
+
directoryPath,
|
|
94
|
+
StringComparison.OrdinalIgnoreCase
|
|
95
|
+
);
|
|
96
|
+
if (index < 0)
|
|
97
|
+
{
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
directoriesToCheck.Enqueue(subDirectory.Substring(index));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
foreach (Sprite sprite in sprites)
|
|
106
|
+
{
|
|
107
|
+
if (sprite == null)
|
|
108
|
+
{
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
string filePath = AssetDatabase.GetAssetPath(sprite);
|
|
113
|
+
if (
|
|
114
|
+
processedSpritePaths.Add(Application.dataPath + filePath)
|
|
115
|
+
&& TryUpdateTextureSettings(filePath)
|
|
116
|
+
)
|
|
117
|
+
{
|
|
118
|
+
++spriteCount;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
this.Log("Processed {0} sprites.", spriteCount);
|
|
123
|
+
if (0 < spriteCount)
|
|
124
|
+
{
|
|
125
|
+
AssetDatabase.Refresh();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
private bool TryUpdateTextureSettings(string filePath)
|
|
130
|
+
{
|
|
131
|
+
TextureImporter textureImporter = AssetImporter.GetAtPath(filePath) as TextureImporter;
|
|
132
|
+
if (textureImporter == null)
|
|
133
|
+
{
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
SpriteSettings spriteData = spriteSettings.FirstOrDefault(settings =>
|
|
138
|
+
string.IsNullOrEmpty(settings.name) || filePath.Contains(settings.name)
|
|
139
|
+
);
|
|
140
|
+
if (spriteData == null)
|
|
141
|
+
{
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
textureImporter.spritePivot = spriteData.pivot;
|
|
146
|
+
textureImporter.spritePixelsPerUnit = spriteData.pixelsPerUnit;
|
|
147
|
+
|
|
148
|
+
TextureImporterSettings settings = new();
|
|
149
|
+
textureImporter.ReadTextureSettings(settings);
|
|
150
|
+
settings.spriteAlignment = (int)SpriteAlignment.Custom;
|
|
151
|
+
settings.spriteMode = (int)spriteData.spriteMode;
|
|
152
|
+
if (spriteData.applyWrapMode)
|
|
153
|
+
{
|
|
154
|
+
settings.wrapMode = spriteData.wrapMode;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if (spriteData.applyFilterMode)
|
|
158
|
+
{
|
|
159
|
+
settings.filterMode = spriteData.filterMode;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
textureImporter.SetTextureSettings(settings);
|
|
163
|
+
textureImporter.SaveAndReimport();
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
#endif
|
|
168
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: d9b66c9d9bef484c9c916fc474d24c86
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: d9b66c9d9bef484c9c916fc474d24c86
|
|
3
3
|
timeCreated: 1720665873
|
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
namespace UnityHelpers.Editor
|
|
2
|
-
{
|
|
3
|
-
#if UNITY_EDITOR
|
|
4
|
-
using System;
|
|
5
|
-
using UnityEditor;
|
|
6
|
-
using UnityEngine;
|
|
7
|
-
using UnityHelpers.Core.Helper;
|
|
8
|
-
|
|
9
|
-
[CustomPropertyDrawer(typeof(StringInList))]
|
|
10
|
-
public class StringInListDrawer : PropertyDrawer
|
|
11
|
-
{
|
|
12
|
-
// Draw the property inside the given rect
|
|
13
|
-
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
|
14
|
-
{
|
|
15
|
-
if (attribute is not StringInList stringInList)
|
|
16
|
-
{
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
string[] list = stringInList.List;
|
|
21
|
-
|
|
22
|
-
switch (property.propertyType)
|
|
23
|
-
{
|
|
24
|
-
case SerializedPropertyType.String:
|
|
25
|
-
{
|
|
26
|
-
int index = Mathf.Max(0, Array.IndexOf(list, property.stringValue));
|
|
27
|
-
index = EditorGUI.Popup(position, property.displayName, index, list);
|
|
28
|
-
if (index < 0 || list.Length <= index)
|
|
29
|
-
{
|
|
30
|
-
base.OnGUI(position, property, label);
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
property.stringValue = list[index];
|
|
35
|
-
break;
|
|
36
|
-
}
|
|
37
|
-
case SerializedPropertyType.Integer:
|
|
38
|
-
{
|
|
39
|
-
property.intValue = EditorGUI.Popup(
|
|
40
|
-
position,
|
|
41
|
-
property.displayName,
|
|
42
|
-
property.intValue,
|
|
43
|
-
list
|
|
44
|
-
);
|
|
45
|
-
break;
|
|
46
|
-
}
|
|
47
|
-
default:
|
|
48
|
-
{
|
|
49
|
-
base.OnGUI(position, property, label);
|
|
50
|
-
break;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
#endif
|
|
56
|
-
}
|
|
1
|
+
namespace UnityHelpers.Editor
|
|
2
|
+
{
|
|
3
|
+
#if UNITY_EDITOR
|
|
4
|
+
using System;
|
|
5
|
+
using UnityEditor;
|
|
6
|
+
using UnityEngine;
|
|
7
|
+
using UnityHelpers.Core.Helper;
|
|
8
|
+
|
|
9
|
+
[CustomPropertyDrawer(typeof(StringInList))]
|
|
10
|
+
public class StringInListDrawer : PropertyDrawer
|
|
11
|
+
{
|
|
12
|
+
// Draw the property inside the given rect
|
|
13
|
+
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
|
14
|
+
{
|
|
15
|
+
if (attribute is not StringInList stringInList)
|
|
16
|
+
{
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
string[] list = stringInList.List;
|
|
21
|
+
|
|
22
|
+
switch (property.propertyType)
|
|
23
|
+
{
|
|
24
|
+
case SerializedPropertyType.String:
|
|
25
|
+
{
|
|
26
|
+
int index = Mathf.Max(0, Array.IndexOf(list, property.stringValue));
|
|
27
|
+
index = EditorGUI.Popup(position, property.displayName, index, list);
|
|
28
|
+
if (index < 0 || list.Length <= index)
|
|
29
|
+
{
|
|
30
|
+
base.OnGUI(position, property, label);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
property.stringValue = list[index];
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
case SerializedPropertyType.Integer:
|
|
38
|
+
{
|
|
39
|
+
property.intValue = EditorGUI.Popup(
|
|
40
|
+
position,
|
|
41
|
+
property.displayName,
|
|
42
|
+
property.intValue,
|
|
43
|
+
list
|
|
44
|
+
);
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
default:
|
|
48
|
+
{
|
|
49
|
+
base.OnGUI(position, property, label);
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
#endif
|
|
56
|
+
}
|