com.wallstop-studios.unity-helpers 2.0.0-rc58 → 2.0.0-rc59
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/.config/dotnet-tools.json +9 -9
- package/.editorconfig +184 -184
- package/.gitattributes +63 -63
- package/.github/workflows/npm-publish.yml +66 -66
- package/.pre-commit-config.yaml +21 -21
- package/Editor/AnimationCopier.cs +181 -181
- package/Editor/AnimationCopier.cs.meta +2 -2
- package/Editor/AnimationCreator.cs +253 -253
- 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/FitTextureSizeWizard.cs +147 -147
- package/Editor/FitTextureSizeWizard.cs.meta +2 -2
- package/Editor/PrefabCheckWizard.cs +170 -170
- package/Editor/PrefabCheckWizard.cs.meta +11 -11
- package/Editor/SpriteSettingsApplier.cs +272 -272
- 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 +178 -178
- package/Editor/TextureSettingsApplier.cs.meta +2 -2
- package/Editor/Utils/DxReadOnlyPropertyDrawer.cs +26 -26
- package/Editor/Utils/DxReadOnlyPropertyDrawer.cs.meta +11 -11
- package/Editor/Utils/EditorUtilities.cs +22 -22
- package/Editor/Utils/EditorUtilities.cs.meta +11 -11
- package/Editor/Utils.meta +8 -8
- package/Editor/WShowIfPropertyDrawer.cs +63 -63
- 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 +177 -177
- 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 +209 -209
- package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs +6 -6
- package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
- package/Runtime/Core/Attributes/NotNullAttribute.cs +32 -32
- package/Runtime/Core/Attributes/ParentComponent.cs +185 -185
- package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +14 -14
- package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +117 -117
- 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/WShowIfAttribute.cs +16 -16
- 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 +193 -153
- package/Runtime/Core/DataStructure/ISpatialTree.cs +60 -60
- package/Runtime/Core/DataStructure/ISpatialTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/KDTree.cs +292 -292
- package/Runtime/Core/DataStructure/KDTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/QuadTree.cs +287 -287
- package/Runtime/Core/DataStructure/RTree.cs +346 -346
- package/Runtime/Core/DataStructure/RTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/StringWrapper.cs +91 -91
- package/Runtime/Core/DataStructure/TimedCache.cs +66 -66
- package/Runtime/Core/Extension/AnimatorExtensions.cs +25 -25
- package/Runtime/Core/Extension/AsyncOperationExtensions.cs +110 -110
- package/Runtime/Core/Extension/CircleExtensions.cs +25 -25
- package/Runtime/Core/Extension/ColorExtensions.cs +629 -629
- package/Runtime/Core/Extension/DictionaryExtensions.cs +279 -279
- package/Runtime/Core/Extension/DirectionExtensions.cs +213 -213
- package/Runtime/Core/Extension/EnumExtensions.cs +37 -37
- package/Runtime/Core/Extension/EnumExtensions.cs.meta +2 -2
- package/Runtime/Core/Extension/HashSetExtensions.cs +12 -12
- package/Runtime/Core/Extension/IEnumerableExtensions.cs +122 -122
- package/Runtime/Core/Extension/IListExtensions.cs +146 -106
- package/Runtime/Core/Extension/LoggingExtensions.cs +258 -258
- package/Runtime/Core/Extension/RandomExtensions.cs +109 -109
- package/Runtime/Core/Extension/SerializedPropertyExtensions.cs +157 -157
- package/Runtime/Core/Extension/StringExtensions.cs +180 -151
- package/Runtime/Core/Extension/UnityExtensions.cs +1608 -1608
- 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/DirectoryHelper.cs +132 -0
- package/Runtime/Core/Helper/DirectoryHelper.cs.meta +3 -0
- package/Runtime/Core/Helper/Enumerables.cs +17 -17
- package/Runtime/Core/Helper/FormattingHelpers.cs +32 -32
- 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 +769 -769
- 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 +189 -189
- package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials.meta +2 -2
- package/Runtime/Core/Helper/ReflectionHelpers.cs +452 -452
- package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/SceneHelper.cs +209 -209
- package/Runtime/Core/Helper/SpriteHelpers.cs +41 -41
- 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/UnityMainThreadDispatcher.cs +82 -82
- 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 +585 -585
- package/Runtime/Core/Random/DotNetRandom.cs +54 -54
- package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
- package/Runtime/Core/Random/IRandom.cs +161 -161
- package/Runtime/Core/Random/LinearCongruentialGenerator.cs +49 -49
- 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 +52 -52
- package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
- package/Runtime/Core/Random/XorShiroRandom.cs +119 -119
- package/Runtime/Core/Random/XorShiroRandom.cs.meta +2 -2
- package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs +88 -88
- package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs +37 -37
- package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs +218 -218
- package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs +28 -28
- package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +74 -74
- package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +81 -81
- package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs +88 -88
- package/Runtime/Core/Serialization/Serializer.cs +195 -195
- package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +113 -113
- 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 +33 -33
- 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/DeferredDisposalResult.cs +23 -23
- 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 +69 -69
- package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
- package/Runtime/Utils/SetTextureImportData.cs +69 -69
- package/Runtime/Utils/SpriteRendererMetadata.cs +374 -374
- 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/StartTracker.cs +15 -0
- package/Runtime/Utils/StartTracker.cs.meta +3 -0
- package/Runtime/Utils/TextureScale.cs +179 -179
- package/Runtime/Utils/TextureScale.cs.meta +2 -2
- package/Runtime/Utils/UnityObjectNameComparer.cs +33 -0
- package/Runtime/Utils/UnityObjectNameComparer.cs.meta +3 -0
- 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/RelationalComponentTesterComplex.cs +34 -34
- package/Tests/Runtime/Components/RelationalComponentTesterComplex.cs.meta +2 -2
- package/Tests/Runtime/Components/RelationalComponentsTesterSimple.cs +40 -40
- 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/EnumExtensionTests.cs +128 -128
- package/Tests/Runtime/Extensions/EnumExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/IListExtensionTests.cs +104 -104
- 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/FormattingHelperTests.cs +129 -129
- package/Tests/Runtime/Helper/FormattingHelperTests.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/ReflectionHelperTests.cs +536 -536
- package/Tests/Runtime/Helper/SceneHelperTests.cs +94 -94
- 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 +157 -157
- package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +61 -61
- 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/LinearCongruentialGeneratorTests.cs +12 -12
- 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 +156 -156
- 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,272 +1,272 @@
|
|
|
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.Attributes;
|
|
9
|
-
using Core.Extension;
|
|
10
|
-
using Core.Helper;
|
|
11
|
-
using UnityEditor;
|
|
12
|
-
using UnityEngine;
|
|
13
|
-
using Object = UnityEngine.Object;
|
|
14
|
-
|
|
15
|
-
[Serializable]
|
|
16
|
-
public sealed class SpriteSettings
|
|
17
|
-
{
|
|
18
|
-
public bool applyPixelsPerUnit;
|
|
19
|
-
|
|
20
|
-
[WShowIf(nameof(applyPixelsPerUnit))]
|
|
21
|
-
public int pixelsPerUnit = 100;
|
|
22
|
-
|
|
23
|
-
public bool applyPivot;
|
|
24
|
-
|
|
25
|
-
[WShowIf(nameof(applyPivot))]
|
|
26
|
-
public Vector2 pivot = new(0.5f, 0.5f);
|
|
27
|
-
|
|
28
|
-
public bool applySpriteMode;
|
|
29
|
-
|
|
30
|
-
[WShowIf(nameof(applySpriteMode))]
|
|
31
|
-
public SpriteImportMode spriteMode = SpriteImportMode.Single;
|
|
32
|
-
|
|
33
|
-
public bool applyGenerateMipMaps;
|
|
34
|
-
|
|
35
|
-
[WShowIf(nameof(applyGenerateMipMaps))]
|
|
36
|
-
public bool generateMipMaps;
|
|
37
|
-
|
|
38
|
-
public bool applyAlphaIsTransparency;
|
|
39
|
-
|
|
40
|
-
[WShowIf(nameof(applyAlphaIsTransparency))]
|
|
41
|
-
public bool alphaIsTransparency = true;
|
|
42
|
-
|
|
43
|
-
public bool applyReadWriteEnabled;
|
|
44
|
-
|
|
45
|
-
[WShowIf(nameof(applyReadWriteEnabled))]
|
|
46
|
-
public bool readWriteEnabled = true;
|
|
47
|
-
|
|
48
|
-
public bool applyExtrudeEdges;
|
|
49
|
-
|
|
50
|
-
[WShowIf(nameof(applyExtrudeEdges))]
|
|
51
|
-
[Range(0, 32)]
|
|
52
|
-
public uint extrudeEdges = 1;
|
|
53
|
-
|
|
54
|
-
public bool applyWrapMode;
|
|
55
|
-
|
|
56
|
-
[WShowIf(nameof(applyWrapMode))]
|
|
57
|
-
public TextureWrapMode wrapMode = TextureWrapMode.Clamp;
|
|
58
|
-
|
|
59
|
-
public bool applyFilterMode;
|
|
60
|
-
|
|
61
|
-
[WShowIf(nameof(applyFilterMode))]
|
|
62
|
-
public FilterMode filterMode = FilterMode.Point;
|
|
63
|
-
|
|
64
|
-
public string name = string.Empty;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
public sealed class SpriteSettingsApplier : ScriptableWizard
|
|
68
|
-
{
|
|
69
|
-
public List<Sprite> sprites = new();
|
|
70
|
-
public List<string> spriteFileExtensions = new() { ".png" };
|
|
71
|
-
|
|
72
|
-
[Tooltip(
|
|
73
|
-
"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."
|
|
74
|
-
)]
|
|
75
|
-
public List<SpriteSettings> spriteSettings = new() { new SpriteSettings() };
|
|
76
|
-
|
|
77
|
-
[Tooltip(
|
|
78
|
-
"Drag a folder from Unity here to apply the configuration to all settings under it. No sprites are modified if no directories are provided."
|
|
79
|
-
)]
|
|
80
|
-
public List<Object> directories = new();
|
|
81
|
-
|
|
82
|
-
[MenuItem("Tools/Unity Helpers/Sprite Settings Applier", priority = -2)]
|
|
83
|
-
public static void CreateAnimation()
|
|
84
|
-
{
|
|
85
|
-
_ = DisplayWizard<SpriteSettingsApplier>("Sprite Settings Directory Applier", "Set");
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
private void OnWizardCreate()
|
|
89
|
-
{
|
|
90
|
-
HashSet<string> uniqueDirectories = new();
|
|
91
|
-
foreach (
|
|
92
|
-
string assetPath in directories
|
|
93
|
-
.Where(Objects.NotNull)
|
|
94
|
-
.Select(AssetDatabase.GetAssetPath)
|
|
95
|
-
.Where(assetPath => !string.IsNullOrWhiteSpace(assetPath))
|
|
96
|
-
)
|
|
97
|
-
{
|
|
98
|
-
if (Directory.Exists(assetPath))
|
|
99
|
-
{
|
|
100
|
-
_ = uniqueDirectories.Add(assetPath);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
HashSet<string> processedSpritePaths = new();
|
|
105
|
-
Queue<string> directoriesToCheck = new(uniqueDirectories);
|
|
106
|
-
int spriteCount = 0;
|
|
107
|
-
while (directoriesToCheck.TryDequeue(out string directoryPath))
|
|
108
|
-
{
|
|
109
|
-
foreach (string fullFilePath in Directory.EnumerateFiles(directoryPath))
|
|
110
|
-
{
|
|
111
|
-
if (!spriteFileExtensions.Contains(Path.GetExtension(fullFilePath)))
|
|
112
|
-
{
|
|
113
|
-
continue;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
int index = fullFilePath.LastIndexOf(
|
|
117
|
-
directoryPath,
|
|
118
|
-
StringComparison.OrdinalIgnoreCase
|
|
119
|
-
);
|
|
120
|
-
if (index < 0)
|
|
121
|
-
{
|
|
122
|
-
continue;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
string filePath = fullFilePath.Substring(index);
|
|
126
|
-
if (
|
|
127
|
-
processedSpritePaths.Add(fullFilePath) && TryUpdateTextureSettings(filePath)
|
|
128
|
-
)
|
|
129
|
-
{
|
|
130
|
-
++spriteCount;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
foreach (string subDirectory in Directory.EnumerateDirectories(directoryPath))
|
|
135
|
-
{
|
|
136
|
-
int index = subDirectory.LastIndexOf(
|
|
137
|
-
directoryPath,
|
|
138
|
-
StringComparison.OrdinalIgnoreCase
|
|
139
|
-
);
|
|
140
|
-
if (index < 0)
|
|
141
|
-
{
|
|
142
|
-
continue;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
directoriesToCheck.Enqueue(subDirectory.Substring(index));
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
foreach (
|
|
150
|
-
string filePath in sprites
|
|
151
|
-
.Where(Objects.NotNull)
|
|
152
|
-
.Select(AssetDatabase.GetAssetPath)
|
|
153
|
-
.Where(Objects.NotNull)
|
|
154
|
-
)
|
|
155
|
-
{
|
|
156
|
-
if (
|
|
157
|
-
processedSpritePaths.Add(Application.dataPath + filePath)
|
|
158
|
-
&& TryUpdateTextureSettings(filePath)
|
|
159
|
-
)
|
|
160
|
-
{
|
|
161
|
-
++spriteCount;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
this.Log("Processed {0} sprites.", spriteCount);
|
|
166
|
-
if (0 < spriteCount)
|
|
167
|
-
{
|
|
168
|
-
AssetDatabase.Refresh();
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
private bool TryUpdateTextureSettings(string filePath)
|
|
173
|
-
{
|
|
174
|
-
bool changed = false;
|
|
175
|
-
if (string.IsNullOrWhiteSpace(filePath))
|
|
176
|
-
{
|
|
177
|
-
return changed;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
TextureImporter textureImporter = AssetImporter.GetAtPath(filePath) as TextureImporter;
|
|
181
|
-
if (textureImporter == null)
|
|
182
|
-
{
|
|
183
|
-
return changed;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
SpriteSettings spriteData = spriteSettings.Find(settings =>
|
|
187
|
-
string.IsNullOrWhiteSpace(settings.name) || filePath.Contains(settings.name)
|
|
188
|
-
);
|
|
189
|
-
if (spriteData == null)
|
|
190
|
-
{
|
|
191
|
-
return changed;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
if (spriteData.applyPixelsPerUnit)
|
|
195
|
-
{
|
|
196
|
-
// ReSharper disable once CompareOfFloatsByEqualityOperator
|
|
197
|
-
changed |= textureImporter.spritePixelsPerUnit != spriteData.pixelsPerUnit;
|
|
198
|
-
textureImporter.spritePixelsPerUnit = spriteData.pixelsPerUnit;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
if (spriteData.applyPivot)
|
|
202
|
-
{
|
|
203
|
-
changed |= textureImporter.spritePivot != spriteData.pivot;
|
|
204
|
-
textureImporter.spritePivot = spriteData.pivot;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
if (spriteData.applyGenerateMipMaps)
|
|
208
|
-
{
|
|
209
|
-
changed |= textureImporter.mipmapEnabled != spriteData.generateMipMaps;
|
|
210
|
-
textureImporter.mipmapEnabled = spriteData.generateMipMaps;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
bool changedSettings = false;
|
|
214
|
-
TextureImporterSettings settings = new();
|
|
215
|
-
textureImporter.ReadTextureSettings(settings);
|
|
216
|
-
if (spriteData.applyPivot)
|
|
217
|
-
{
|
|
218
|
-
changedSettings |= settings.spriteAlignment != (int)SpriteAlignment.Custom;
|
|
219
|
-
settings.spriteAlignment = (int)SpriteAlignment.Custom;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
if (spriteData.applyAlphaIsTransparency)
|
|
223
|
-
{
|
|
224
|
-
changedSettings |= settings.alphaIsTransparency != spriteData.alphaIsTransparency;
|
|
225
|
-
settings.alphaIsTransparency = spriteData.alphaIsTransparency;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
if (spriteData.applyReadWriteEnabled)
|
|
229
|
-
{
|
|
230
|
-
changedSettings |= settings.readable != spriteData.readWriteEnabled;
|
|
231
|
-
settings.readable = spriteData.readWriteEnabled;
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
if (spriteData.applySpriteMode)
|
|
235
|
-
{
|
|
236
|
-
changedSettings |= settings.spriteMode != (int)spriteData.spriteMode;
|
|
237
|
-
settings.spriteMode = (int)spriteData.spriteMode;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
if (spriteData.applyExtrudeEdges)
|
|
241
|
-
{
|
|
242
|
-
changedSettings |= settings.spriteExtrude != spriteData.extrudeEdges;
|
|
243
|
-
settings.spriteExtrude = spriteData.extrudeEdges;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
if (spriteData.applyWrapMode)
|
|
247
|
-
{
|
|
248
|
-
changedSettings |= settings.wrapMode != spriteData.wrapMode;
|
|
249
|
-
settings.wrapMode = spriteData.wrapMode;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
if (spriteData.applyFilterMode)
|
|
253
|
-
{
|
|
254
|
-
changedSettings |= settings.filterMode != spriteData.filterMode;
|
|
255
|
-
settings.filterMode = spriteData.filterMode;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
if (changedSettings)
|
|
259
|
-
{
|
|
260
|
-
textureImporter.SetTextureSettings(settings);
|
|
261
|
-
}
|
|
262
|
-
changed |= changedSettings;
|
|
263
|
-
if (changed)
|
|
264
|
-
{
|
|
265
|
-
textureImporter.SaveAndReimport();
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
return changed;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
#endif
|
|
272
|
-
}
|
|
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.Attributes;
|
|
9
|
+
using Core.Extension;
|
|
10
|
+
using Core.Helper;
|
|
11
|
+
using UnityEditor;
|
|
12
|
+
using UnityEngine;
|
|
13
|
+
using Object = UnityEngine.Object;
|
|
14
|
+
|
|
15
|
+
[Serializable]
|
|
16
|
+
public sealed class SpriteSettings
|
|
17
|
+
{
|
|
18
|
+
public bool applyPixelsPerUnit;
|
|
19
|
+
|
|
20
|
+
[WShowIf(nameof(applyPixelsPerUnit))]
|
|
21
|
+
public int pixelsPerUnit = 100;
|
|
22
|
+
|
|
23
|
+
public bool applyPivot;
|
|
24
|
+
|
|
25
|
+
[WShowIf(nameof(applyPivot))]
|
|
26
|
+
public Vector2 pivot = new(0.5f, 0.5f);
|
|
27
|
+
|
|
28
|
+
public bool applySpriteMode;
|
|
29
|
+
|
|
30
|
+
[WShowIf(nameof(applySpriteMode))]
|
|
31
|
+
public SpriteImportMode spriteMode = SpriteImportMode.Single;
|
|
32
|
+
|
|
33
|
+
public bool applyGenerateMipMaps;
|
|
34
|
+
|
|
35
|
+
[WShowIf(nameof(applyGenerateMipMaps))]
|
|
36
|
+
public bool generateMipMaps;
|
|
37
|
+
|
|
38
|
+
public bool applyAlphaIsTransparency;
|
|
39
|
+
|
|
40
|
+
[WShowIf(nameof(applyAlphaIsTransparency))]
|
|
41
|
+
public bool alphaIsTransparency = true;
|
|
42
|
+
|
|
43
|
+
public bool applyReadWriteEnabled;
|
|
44
|
+
|
|
45
|
+
[WShowIf(nameof(applyReadWriteEnabled))]
|
|
46
|
+
public bool readWriteEnabled = true;
|
|
47
|
+
|
|
48
|
+
public bool applyExtrudeEdges;
|
|
49
|
+
|
|
50
|
+
[WShowIf(nameof(applyExtrudeEdges))]
|
|
51
|
+
[Range(0, 32)]
|
|
52
|
+
public uint extrudeEdges = 1;
|
|
53
|
+
|
|
54
|
+
public bool applyWrapMode;
|
|
55
|
+
|
|
56
|
+
[WShowIf(nameof(applyWrapMode))]
|
|
57
|
+
public TextureWrapMode wrapMode = TextureWrapMode.Clamp;
|
|
58
|
+
|
|
59
|
+
public bool applyFilterMode;
|
|
60
|
+
|
|
61
|
+
[WShowIf(nameof(applyFilterMode))]
|
|
62
|
+
public FilterMode filterMode = FilterMode.Point;
|
|
63
|
+
|
|
64
|
+
public string name = string.Empty;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public sealed class SpriteSettingsApplier : ScriptableWizard
|
|
68
|
+
{
|
|
69
|
+
public List<Sprite> sprites = new();
|
|
70
|
+
public List<string> spriteFileExtensions = new() { ".png" };
|
|
71
|
+
|
|
72
|
+
[Tooltip(
|
|
73
|
+
"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."
|
|
74
|
+
)]
|
|
75
|
+
public List<SpriteSettings> spriteSettings = new() { new SpriteSettings() };
|
|
76
|
+
|
|
77
|
+
[Tooltip(
|
|
78
|
+
"Drag a folder from Unity here to apply the configuration to all settings under it. No sprites are modified if no directories are provided."
|
|
79
|
+
)]
|
|
80
|
+
public List<Object> directories = new();
|
|
81
|
+
|
|
82
|
+
[MenuItem("Tools/Unity Helpers/Sprite Settings Applier", priority = -2)]
|
|
83
|
+
public static void CreateAnimation()
|
|
84
|
+
{
|
|
85
|
+
_ = DisplayWizard<SpriteSettingsApplier>("Sprite Settings Directory Applier", "Set");
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
private void OnWizardCreate()
|
|
89
|
+
{
|
|
90
|
+
HashSet<string> uniqueDirectories = new();
|
|
91
|
+
foreach (
|
|
92
|
+
string assetPath in directories
|
|
93
|
+
.Where(Objects.NotNull)
|
|
94
|
+
.Select(AssetDatabase.GetAssetPath)
|
|
95
|
+
.Where(assetPath => !string.IsNullOrWhiteSpace(assetPath))
|
|
96
|
+
)
|
|
97
|
+
{
|
|
98
|
+
if (Directory.Exists(assetPath))
|
|
99
|
+
{
|
|
100
|
+
_ = uniqueDirectories.Add(assetPath);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
HashSet<string> processedSpritePaths = new();
|
|
105
|
+
Queue<string> directoriesToCheck = new(uniqueDirectories);
|
|
106
|
+
int spriteCount = 0;
|
|
107
|
+
while (directoriesToCheck.TryDequeue(out string directoryPath))
|
|
108
|
+
{
|
|
109
|
+
foreach (string fullFilePath in Directory.EnumerateFiles(directoryPath))
|
|
110
|
+
{
|
|
111
|
+
if (!spriteFileExtensions.Contains(Path.GetExtension(fullFilePath)))
|
|
112
|
+
{
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
int index = fullFilePath.LastIndexOf(
|
|
117
|
+
directoryPath,
|
|
118
|
+
StringComparison.OrdinalIgnoreCase
|
|
119
|
+
);
|
|
120
|
+
if (index < 0)
|
|
121
|
+
{
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
string filePath = fullFilePath.Substring(index);
|
|
126
|
+
if (
|
|
127
|
+
processedSpritePaths.Add(fullFilePath) && TryUpdateTextureSettings(filePath)
|
|
128
|
+
)
|
|
129
|
+
{
|
|
130
|
+
++spriteCount;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
foreach (string subDirectory in Directory.EnumerateDirectories(directoryPath))
|
|
135
|
+
{
|
|
136
|
+
int index = subDirectory.LastIndexOf(
|
|
137
|
+
directoryPath,
|
|
138
|
+
StringComparison.OrdinalIgnoreCase
|
|
139
|
+
);
|
|
140
|
+
if (index < 0)
|
|
141
|
+
{
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
directoriesToCheck.Enqueue(subDirectory.Substring(index));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
foreach (
|
|
150
|
+
string filePath in sprites
|
|
151
|
+
.Where(Objects.NotNull)
|
|
152
|
+
.Select(AssetDatabase.GetAssetPath)
|
|
153
|
+
.Where(Objects.NotNull)
|
|
154
|
+
)
|
|
155
|
+
{
|
|
156
|
+
if (
|
|
157
|
+
processedSpritePaths.Add(Application.dataPath + filePath)
|
|
158
|
+
&& TryUpdateTextureSettings(filePath)
|
|
159
|
+
)
|
|
160
|
+
{
|
|
161
|
+
++spriteCount;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
this.Log("Processed {0} sprites.", spriteCount);
|
|
166
|
+
if (0 < spriteCount)
|
|
167
|
+
{
|
|
168
|
+
AssetDatabase.Refresh();
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
private bool TryUpdateTextureSettings(string filePath)
|
|
173
|
+
{
|
|
174
|
+
bool changed = false;
|
|
175
|
+
if (string.IsNullOrWhiteSpace(filePath))
|
|
176
|
+
{
|
|
177
|
+
return changed;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
TextureImporter textureImporter = AssetImporter.GetAtPath(filePath) as TextureImporter;
|
|
181
|
+
if (textureImporter == null)
|
|
182
|
+
{
|
|
183
|
+
return changed;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
SpriteSettings spriteData = spriteSettings.Find(settings =>
|
|
187
|
+
string.IsNullOrWhiteSpace(settings.name) || filePath.Contains(settings.name)
|
|
188
|
+
);
|
|
189
|
+
if (spriteData == null)
|
|
190
|
+
{
|
|
191
|
+
return changed;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
if (spriteData.applyPixelsPerUnit)
|
|
195
|
+
{
|
|
196
|
+
// ReSharper disable once CompareOfFloatsByEqualityOperator
|
|
197
|
+
changed |= textureImporter.spritePixelsPerUnit != spriteData.pixelsPerUnit;
|
|
198
|
+
textureImporter.spritePixelsPerUnit = spriteData.pixelsPerUnit;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
if (spriteData.applyPivot)
|
|
202
|
+
{
|
|
203
|
+
changed |= textureImporter.spritePivot != spriteData.pivot;
|
|
204
|
+
textureImporter.spritePivot = spriteData.pivot;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
if (spriteData.applyGenerateMipMaps)
|
|
208
|
+
{
|
|
209
|
+
changed |= textureImporter.mipmapEnabled != spriteData.generateMipMaps;
|
|
210
|
+
textureImporter.mipmapEnabled = spriteData.generateMipMaps;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
bool changedSettings = false;
|
|
214
|
+
TextureImporterSettings settings = new();
|
|
215
|
+
textureImporter.ReadTextureSettings(settings);
|
|
216
|
+
if (spriteData.applyPivot)
|
|
217
|
+
{
|
|
218
|
+
changedSettings |= settings.spriteAlignment != (int)SpriteAlignment.Custom;
|
|
219
|
+
settings.spriteAlignment = (int)SpriteAlignment.Custom;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
if (spriteData.applyAlphaIsTransparency)
|
|
223
|
+
{
|
|
224
|
+
changedSettings |= settings.alphaIsTransparency != spriteData.alphaIsTransparency;
|
|
225
|
+
settings.alphaIsTransparency = spriteData.alphaIsTransparency;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
if (spriteData.applyReadWriteEnabled)
|
|
229
|
+
{
|
|
230
|
+
changedSettings |= settings.readable != spriteData.readWriteEnabled;
|
|
231
|
+
settings.readable = spriteData.readWriteEnabled;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
if (spriteData.applySpriteMode)
|
|
235
|
+
{
|
|
236
|
+
changedSettings |= settings.spriteMode != (int)spriteData.spriteMode;
|
|
237
|
+
settings.spriteMode = (int)spriteData.spriteMode;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
if (spriteData.applyExtrudeEdges)
|
|
241
|
+
{
|
|
242
|
+
changedSettings |= settings.spriteExtrude != spriteData.extrudeEdges;
|
|
243
|
+
settings.spriteExtrude = spriteData.extrudeEdges;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
if (spriteData.applyWrapMode)
|
|
247
|
+
{
|
|
248
|
+
changedSettings |= settings.wrapMode != spriteData.wrapMode;
|
|
249
|
+
settings.wrapMode = spriteData.wrapMode;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (spriteData.applyFilterMode)
|
|
253
|
+
{
|
|
254
|
+
changedSettings |= settings.filterMode != spriteData.filterMode;
|
|
255
|
+
settings.filterMode = spriteData.filterMode;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
if (changedSettings)
|
|
259
|
+
{
|
|
260
|
+
textureImporter.SetTextureSettings(settings);
|
|
261
|
+
}
|
|
262
|
+
changed |= changedSettings;
|
|
263
|
+
if (changed)
|
|
264
|
+
{
|
|
265
|
+
textureImporter.SaveAndReimport();
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
return changed;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
#endif
|
|
272
|
+
}
|
|
@@ -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
|
+
}
|