com.wallstop-studios.unity-helpers 2.0.0-rc57 → 2.0.0-rc58
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 +153 -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 +106 -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 +151 -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/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 -213
- 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/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/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,178 +1,178 @@
|
|
|
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 UnityEditor;
|
|
11
|
-
using UnityEngine;
|
|
12
|
-
using UnityHelpers.Utils;
|
|
13
|
-
using Object = UnityEngine.Object;
|
|
14
|
-
|
|
15
|
-
public sealed class TextureSettingsApplier : ScriptableWizard
|
|
16
|
-
{
|
|
17
|
-
public bool applyReadOnly = false;
|
|
18
|
-
public bool isReadOnly = false;
|
|
19
|
-
public bool applyMipMaps = false;
|
|
20
|
-
public bool generateMipMaps = false;
|
|
21
|
-
public bool applyWrapMode = false;
|
|
22
|
-
|
|
23
|
-
[WShowIf(nameof(applyWrapMode))]
|
|
24
|
-
public TextureWrapMode wrapMode = TextureWrapMode.Clamp;
|
|
25
|
-
|
|
26
|
-
public bool applyFilterMode = false;
|
|
27
|
-
|
|
28
|
-
[WShowIf(nameof(applyFilterMode))]
|
|
29
|
-
public FilterMode filterMode = FilterMode.Trilinear;
|
|
30
|
-
|
|
31
|
-
public TextureImporterCompression compression = TextureImporterCompression.CompressedHQ;
|
|
32
|
-
public bool useCrunchCompression = true;
|
|
33
|
-
public TextureResizeAlgorithm textureResizeAlgorithm = TextureResizeAlgorithm.Bilinear;
|
|
34
|
-
public int maxTextureSize = SetTextureImportData.MaxTextureSize;
|
|
35
|
-
public TextureImporterFormat textureFormat = TextureImporterFormat.Automatic;
|
|
36
|
-
public List<string> spriteFileExtensions = new() { ".png" };
|
|
37
|
-
|
|
38
|
-
public List<Texture2D> textures = new();
|
|
39
|
-
|
|
40
|
-
[Tooltip(
|
|
41
|
-
"Drag a folder from Unity here to apply the configuration to all settings under it. No sprites are modified if no directories are provided."
|
|
42
|
-
)]
|
|
43
|
-
public List<Object> directories = new();
|
|
44
|
-
|
|
45
|
-
[MenuItem("Tools/Unity Helpers/Texture Settings Applier")]
|
|
46
|
-
public static void CreateAnimation()
|
|
47
|
-
{
|
|
48
|
-
_ = DisplayWizard<TextureSettingsApplier>("Texture Settings Directory Applier", "Set");
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
private void OnWizardCreate()
|
|
52
|
-
{
|
|
53
|
-
HashSet<string> uniqueDirectories = new();
|
|
54
|
-
foreach (Object directory in directories)
|
|
55
|
-
{
|
|
56
|
-
string assetPath = AssetDatabase.GetAssetPath(directory);
|
|
57
|
-
if (Directory.Exists(assetPath))
|
|
58
|
-
{
|
|
59
|
-
_ = uniqueDirectories.Add(assetPath);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
int textureCount = 0;
|
|
64
|
-
HashSet<string> processedPaths = new();
|
|
65
|
-
foreach (
|
|
66
|
-
Texture2D texture in textures
|
|
67
|
-
?.Distinct()
|
|
68
|
-
.OrderBy(texture => texture != null ? texture.name : string.Empty)
|
|
69
|
-
?? Enumerable.Empty<Texture2D>()
|
|
70
|
-
)
|
|
71
|
-
{
|
|
72
|
-
if (texture == null)
|
|
73
|
-
{
|
|
74
|
-
continue;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
string assetPath = AssetDatabase.GetAssetPath(texture);
|
|
78
|
-
if (
|
|
79
|
-
processedPaths.Add(Application.dataPath + assetPath)
|
|
80
|
-
&& TryUpdateTextureSettings(assetPath)
|
|
81
|
-
)
|
|
82
|
-
{
|
|
83
|
-
++textureCount;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
Queue<string> directoriesToCheck = new(uniqueDirectories);
|
|
88
|
-
while (directoriesToCheck.TryDequeue(out string directoryPath))
|
|
89
|
-
{
|
|
90
|
-
foreach (string fullFilePath in Directory.EnumerateFiles(directoryPath))
|
|
91
|
-
{
|
|
92
|
-
if (!spriteFileExtensions.Contains(Path.GetExtension(fullFilePath)))
|
|
93
|
-
{
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
int index = fullFilePath.LastIndexOf(
|
|
98
|
-
directoryPath,
|
|
99
|
-
StringComparison.OrdinalIgnoreCase
|
|
100
|
-
);
|
|
101
|
-
if (index < 0)
|
|
102
|
-
{
|
|
103
|
-
continue;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
string filePath = fullFilePath.Substring(index);
|
|
107
|
-
if (processedPaths.Add(fullFilePath) && TryUpdateTextureSettings(filePath))
|
|
108
|
-
{
|
|
109
|
-
++textureCount;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
foreach (string subDirectory in Directory.EnumerateDirectories(directoryPath))
|
|
114
|
-
{
|
|
115
|
-
int index = subDirectory.LastIndexOf(
|
|
116
|
-
directoryPath,
|
|
117
|
-
StringComparison.OrdinalIgnoreCase
|
|
118
|
-
);
|
|
119
|
-
if (index < 0)
|
|
120
|
-
{
|
|
121
|
-
continue;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
directoriesToCheck.Enqueue(subDirectory.Substring(index));
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
this.Log("Processed {0} textures.", textureCount);
|
|
129
|
-
if (0 < textureCount)
|
|
130
|
-
{
|
|
131
|
-
AssetDatabase.Refresh();
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
private bool TryUpdateTextureSettings(string filePath)
|
|
136
|
-
{
|
|
137
|
-
TextureImporter textureImporter = AssetImporter.GetAtPath(filePath) as TextureImporter;
|
|
138
|
-
if (textureImporter == null)
|
|
139
|
-
{
|
|
140
|
-
return false;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
textureImporter.SetPlatformTextureSettings(
|
|
144
|
-
new TextureImporterPlatformSettings
|
|
145
|
-
{
|
|
146
|
-
resizeAlgorithm = textureResizeAlgorithm,
|
|
147
|
-
maxTextureSize = maxTextureSize,
|
|
148
|
-
format = textureFormat,
|
|
149
|
-
textureCompression = compression,
|
|
150
|
-
crunchedCompression = useCrunchCompression,
|
|
151
|
-
}
|
|
152
|
-
);
|
|
153
|
-
if (applyReadOnly)
|
|
154
|
-
{
|
|
155
|
-
textureImporter.isReadable = !isReadOnly;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
if (applyMipMaps)
|
|
159
|
-
{
|
|
160
|
-
textureImporter.mipmapEnabled = generateMipMaps;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
if (applyWrapMode)
|
|
164
|
-
{
|
|
165
|
-
textureImporter.wrapMode = wrapMode;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
if (applyFilterMode)
|
|
169
|
-
{
|
|
170
|
-
textureImporter.filterMode = filterMode;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
textureImporter.SaveAndReimport();
|
|
174
|
-
return true;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
#endif
|
|
178
|
-
}
|
|
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 UnityEditor;
|
|
11
|
+
using UnityEngine;
|
|
12
|
+
using UnityHelpers.Utils;
|
|
13
|
+
using Object = UnityEngine.Object;
|
|
14
|
+
|
|
15
|
+
public sealed class TextureSettingsApplier : ScriptableWizard
|
|
16
|
+
{
|
|
17
|
+
public bool applyReadOnly = false;
|
|
18
|
+
public bool isReadOnly = false;
|
|
19
|
+
public bool applyMipMaps = false;
|
|
20
|
+
public bool generateMipMaps = false;
|
|
21
|
+
public bool applyWrapMode = false;
|
|
22
|
+
|
|
23
|
+
[WShowIf(nameof(applyWrapMode))]
|
|
24
|
+
public TextureWrapMode wrapMode = TextureWrapMode.Clamp;
|
|
25
|
+
|
|
26
|
+
public bool applyFilterMode = false;
|
|
27
|
+
|
|
28
|
+
[WShowIf(nameof(applyFilterMode))]
|
|
29
|
+
public FilterMode filterMode = FilterMode.Trilinear;
|
|
30
|
+
|
|
31
|
+
public TextureImporterCompression compression = TextureImporterCompression.CompressedHQ;
|
|
32
|
+
public bool useCrunchCompression = true;
|
|
33
|
+
public TextureResizeAlgorithm textureResizeAlgorithm = TextureResizeAlgorithm.Bilinear;
|
|
34
|
+
public int maxTextureSize = SetTextureImportData.MaxTextureSize;
|
|
35
|
+
public TextureImporterFormat textureFormat = TextureImporterFormat.Automatic;
|
|
36
|
+
public List<string> spriteFileExtensions = new() { ".png" };
|
|
37
|
+
|
|
38
|
+
public List<Texture2D> textures = new();
|
|
39
|
+
|
|
40
|
+
[Tooltip(
|
|
41
|
+
"Drag a folder from Unity here to apply the configuration to all settings under it. No sprites are modified if no directories are provided."
|
|
42
|
+
)]
|
|
43
|
+
public List<Object> directories = new();
|
|
44
|
+
|
|
45
|
+
[MenuItem("Tools/Unity Helpers/Texture Settings Applier")]
|
|
46
|
+
public static void CreateAnimation()
|
|
47
|
+
{
|
|
48
|
+
_ = DisplayWizard<TextureSettingsApplier>("Texture Settings Directory Applier", "Set");
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
private void OnWizardCreate()
|
|
52
|
+
{
|
|
53
|
+
HashSet<string> uniqueDirectories = new();
|
|
54
|
+
foreach (Object directory in directories)
|
|
55
|
+
{
|
|
56
|
+
string assetPath = AssetDatabase.GetAssetPath(directory);
|
|
57
|
+
if (Directory.Exists(assetPath))
|
|
58
|
+
{
|
|
59
|
+
_ = uniqueDirectories.Add(assetPath);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
int textureCount = 0;
|
|
64
|
+
HashSet<string> processedPaths = new();
|
|
65
|
+
foreach (
|
|
66
|
+
Texture2D texture in textures
|
|
67
|
+
?.Distinct()
|
|
68
|
+
.OrderBy(texture => texture != null ? texture.name : string.Empty)
|
|
69
|
+
?? Enumerable.Empty<Texture2D>()
|
|
70
|
+
)
|
|
71
|
+
{
|
|
72
|
+
if (texture == null)
|
|
73
|
+
{
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
string assetPath = AssetDatabase.GetAssetPath(texture);
|
|
78
|
+
if (
|
|
79
|
+
processedPaths.Add(Application.dataPath + assetPath)
|
|
80
|
+
&& TryUpdateTextureSettings(assetPath)
|
|
81
|
+
)
|
|
82
|
+
{
|
|
83
|
+
++textureCount;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
Queue<string> directoriesToCheck = new(uniqueDirectories);
|
|
88
|
+
while (directoriesToCheck.TryDequeue(out string directoryPath))
|
|
89
|
+
{
|
|
90
|
+
foreach (string fullFilePath in Directory.EnumerateFiles(directoryPath))
|
|
91
|
+
{
|
|
92
|
+
if (!spriteFileExtensions.Contains(Path.GetExtension(fullFilePath)))
|
|
93
|
+
{
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
int index = fullFilePath.LastIndexOf(
|
|
98
|
+
directoryPath,
|
|
99
|
+
StringComparison.OrdinalIgnoreCase
|
|
100
|
+
);
|
|
101
|
+
if (index < 0)
|
|
102
|
+
{
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
string filePath = fullFilePath.Substring(index);
|
|
107
|
+
if (processedPaths.Add(fullFilePath) && TryUpdateTextureSettings(filePath))
|
|
108
|
+
{
|
|
109
|
+
++textureCount;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
foreach (string subDirectory in Directory.EnumerateDirectories(directoryPath))
|
|
114
|
+
{
|
|
115
|
+
int index = subDirectory.LastIndexOf(
|
|
116
|
+
directoryPath,
|
|
117
|
+
StringComparison.OrdinalIgnoreCase
|
|
118
|
+
);
|
|
119
|
+
if (index < 0)
|
|
120
|
+
{
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
directoriesToCheck.Enqueue(subDirectory.Substring(index));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
this.Log("Processed {0} textures.", textureCount);
|
|
129
|
+
if (0 < textureCount)
|
|
130
|
+
{
|
|
131
|
+
AssetDatabase.Refresh();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
private bool TryUpdateTextureSettings(string filePath)
|
|
136
|
+
{
|
|
137
|
+
TextureImporter textureImporter = AssetImporter.GetAtPath(filePath) as TextureImporter;
|
|
138
|
+
if (textureImporter == null)
|
|
139
|
+
{
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
textureImporter.SetPlatformTextureSettings(
|
|
144
|
+
new TextureImporterPlatformSettings
|
|
145
|
+
{
|
|
146
|
+
resizeAlgorithm = textureResizeAlgorithm,
|
|
147
|
+
maxTextureSize = maxTextureSize,
|
|
148
|
+
format = textureFormat,
|
|
149
|
+
textureCompression = compression,
|
|
150
|
+
crunchedCompression = useCrunchCompression,
|
|
151
|
+
}
|
|
152
|
+
);
|
|
153
|
+
if (applyReadOnly)
|
|
154
|
+
{
|
|
155
|
+
textureImporter.isReadable = !isReadOnly;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (applyMipMaps)
|
|
159
|
+
{
|
|
160
|
+
textureImporter.mipmapEnabled = generateMipMaps;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
if (applyWrapMode)
|
|
164
|
+
{
|
|
165
|
+
textureImporter.wrapMode = wrapMode;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
if (applyFilterMode)
|
|
169
|
+
{
|
|
170
|
+
textureImporter.filterMode = filterMode;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
textureImporter.SaveAndReimport();
|
|
174
|
+
return true;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
#endif
|
|
178
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 23e3474825574ecfa1084d4d4ca83ebd
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 23e3474825574ecfa1084d4d4ca83ebd
|
|
3
3
|
timeCreated: 1720666563
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
namespace UnityHelpers.Editor.Utils
|
|
2
|
-
{
|
|
3
|
-
#if UNITY_EDITOR
|
|
4
|
-
using Core.Attributes;
|
|
5
|
-
using UnityEditor;
|
|
6
|
-
using UnityEngine;
|
|
7
|
-
|
|
8
|
-
// https://www.patrykgalach.com/2020/01/20/readonly-attribute-in-unity-editor/
|
|
9
|
-
[CustomPropertyDrawer(typeof(DxReadOnlyAttribute))]
|
|
10
|
-
public sealed class DxReadOnlyPropertyDrawer : PropertyDrawer
|
|
11
|
-
{
|
|
12
|
-
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
|
|
13
|
-
{
|
|
14
|
-
return EditorGUI.GetPropertyHeight(property, label, true);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
|
18
|
-
{
|
|
19
|
-
bool previousGUIState = GUI.enabled;
|
|
20
|
-
GUI.enabled = false;
|
|
21
|
-
_ = EditorGUI.PropertyField(position, property, label);
|
|
22
|
-
GUI.enabled = previousGUIState;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
#endif
|
|
26
|
-
}
|
|
1
|
+
namespace UnityHelpers.Editor.Utils
|
|
2
|
+
{
|
|
3
|
+
#if UNITY_EDITOR
|
|
4
|
+
using Core.Attributes;
|
|
5
|
+
using UnityEditor;
|
|
6
|
+
using UnityEngine;
|
|
7
|
+
|
|
8
|
+
// https://www.patrykgalach.com/2020/01/20/readonly-attribute-in-unity-editor/
|
|
9
|
+
[CustomPropertyDrawer(typeof(DxReadOnlyAttribute))]
|
|
10
|
+
public sealed class DxReadOnlyPropertyDrawer : PropertyDrawer
|
|
11
|
+
{
|
|
12
|
+
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
|
|
13
|
+
{
|
|
14
|
+
return EditorGUI.GetPropertyHeight(property, label, true);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
|
18
|
+
{
|
|
19
|
+
bool previousGUIState = GUI.enabled;
|
|
20
|
+
GUI.enabled = false;
|
|
21
|
+
_ = EditorGUI.PropertyField(position, property, label);
|
|
22
|
+
GUI.enabled = previousGUIState;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
#endif
|
|
26
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: c10f5b90c98ae0d48a81cf8d36a9d9ef
|
|
3
|
-
MonoImporter:
|
|
4
|
-
externalObjects: {}
|
|
5
|
-
serializedVersion: 2
|
|
6
|
-
defaultReferences: []
|
|
7
|
-
executionOrder: 0
|
|
8
|
-
icon: {instanceID: 0}
|
|
9
|
-
userData:
|
|
10
|
-
assetBundleName:
|
|
11
|
-
assetBundleVariant:
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: c10f5b90c98ae0d48a81cf8d36a9d9ef
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
namespace UnityHelpers.Editor.Utils
|
|
2
|
-
{
|
|
3
|
-
#if UNITY_EDITOR
|
|
4
|
-
using System;
|
|
5
|
-
using System.Reflection;
|
|
6
|
-
using UnityEditor;
|
|
7
|
-
|
|
8
|
-
public static class EditorUtilities
|
|
9
|
-
{
|
|
10
|
-
public static string GetCurrentPathOfProjectWindow()
|
|
11
|
-
{
|
|
12
|
-
Type projectWindowUtilType = typeof(ProjectWindowUtil);
|
|
13
|
-
MethodInfo getActiveFolderPath = projectWindowUtilType.GetMethod(
|
|
14
|
-
"GetActiveFolderPath",
|
|
15
|
-
BindingFlags.Static | BindingFlags.NonPublic
|
|
16
|
-
);
|
|
17
|
-
object obj = getActiveFolderPath?.Invoke(null, Array.Empty<object>());
|
|
18
|
-
return obj?.ToString() ?? string.Empty;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
#endif
|
|
22
|
-
}
|
|
1
|
+
namespace UnityHelpers.Editor.Utils
|
|
2
|
+
{
|
|
3
|
+
#if UNITY_EDITOR
|
|
4
|
+
using System;
|
|
5
|
+
using System.Reflection;
|
|
6
|
+
using UnityEditor;
|
|
7
|
+
|
|
8
|
+
public static class EditorUtilities
|
|
9
|
+
{
|
|
10
|
+
public static string GetCurrentPathOfProjectWindow()
|
|
11
|
+
{
|
|
12
|
+
Type projectWindowUtilType = typeof(ProjectWindowUtil);
|
|
13
|
+
MethodInfo getActiveFolderPath = projectWindowUtilType.GetMethod(
|
|
14
|
+
"GetActiveFolderPath",
|
|
15
|
+
BindingFlags.Static | BindingFlags.NonPublic
|
|
16
|
+
);
|
|
17
|
+
object obj = getActiveFolderPath?.Invoke(null, Array.Empty<object>());
|
|
18
|
+
return obj?.ToString() ?? string.Empty;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
#endif
|
|
22
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 9256940fb08e3b847a327d916cdce82c
|
|
3
|
-
MonoImporter:
|
|
4
|
-
externalObjects: {}
|
|
5
|
-
serializedVersion: 2
|
|
6
|
-
defaultReferences: []
|
|
7
|
-
executionOrder: 0
|
|
8
|
-
icon: {instanceID: 0}
|
|
9
|
-
userData:
|
|
10
|
-
assetBundleName:
|
|
11
|
-
assetBundleVariant:
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 9256940fb08e3b847a327d916cdce82c
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
package/Editor/Utils.meta
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: b8d1e55b56715f64db1fa9dabc1cb498
|
|
3
|
-
folderAsset: yes
|
|
4
|
-
DefaultImporter:
|
|
5
|
-
externalObjects: {}
|
|
6
|
-
userData:
|
|
7
|
-
assetBundleName:
|
|
8
|
-
assetBundleVariant:
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: b8d1e55b56715f64db1fa9dabc1cb498
|
|
3
|
+
folderAsset: yes
|
|
4
|
+
DefaultImporter:
|
|
5
|
+
externalObjects: {}
|
|
6
|
+
userData:
|
|
7
|
+
assetBundleName:
|
|
8
|
+
assetBundleVariant:
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
namespace UnityHelpers.Editor
|
|
2
|
-
{
|
|
3
|
-
#if UNITY_EDITOR
|
|
4
|
-
using System.Reflection;
|
|
5
|
-
using Core.Attributes;
|
|
6
|
-
using Core.Extension;
|
|
7
|
-
using UnityEngine;
|
|
8
|
-
using UnityEditor;
|
|
9
|
-
|
|
10
|
-
[CustomPropertyDrawer(typeof(WShowIfAttribute))]
|
|
11
|
-
public sealed class WShowIfPropertyDrawer : PropertyDrawer
|
|
12
|
-
{
|
|
13
|
-
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
|
|
14
|
-
{
|
|
15
|
-
return !ShouldShow(property) ? 0f : EditorGUI.GetPropertyHeight(property, label, true);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
|
19
|
-
{
|
|
20
|
-
if (ShouldShow(property))
|
|
21
|
-
{
|
|
22
|
-
EditorGUI.PropertyField(position, property, label, true);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
private bool ShouldShow(SerializedProperty property)
|
|
27
|
-
{
|
|
28
|
-
if (attribute is not WShowIfAttribute showIf)
|
|
29
|
-
{
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
SerializedProperty conditionProperty = property.serializedObject.FindProperty(
|
|
34
|
-
showIf.conditionField
|
|
35
|
-
);
|
|
36
|
-
if (conditionProperty is not { propertyType: SerializedPropertyType.Boolean })
|
|
37
|
-
{
|
|
38
|
-
if (conditionProperty != null)
|
|
39
|
-
{
|
|
40
|
-
return true;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// This might not be a unity object, so fall back to reflection
|
|
44
|
-
object enclosingObject = property.GetEnclosingObject(out _);
|
|
45
|
-
FieldInfo conditionField = enclosingObject
|
|
46
|
-
?.GetType()
|
|
47
|
-
.GetField(
|
|
48
|
-
showIf.conditionField,
|
|
49
|
-
BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic
|
|
50
|
-
);
|
|
51
|
-
if (conditionField?.GetValue(enclosingObject) is bool maybeCondition)
|
|
52
|
-
{
|
|
53
|
-
return showIf.inverse ? !maybeCondition : maybeCondition;
|
|
54
|
-
}
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
bool condition = conditionProperty.boolValue;
|
|
59
|
-
return showIf.inverse ? !condition : condition;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
#endif
|
|
63
|
-
}
|
|
1
|
+
namespace UnityHelpers.Editor
|
|
2
|
+
{
|
|
3
|
+
#if UNITY_EDITOR
|
|
4
|
+
using System.Reflection;
|
|
5
|
+
using Core.Attributes;
|
|
6
|
+
using Core.Extension;
|
|
7
|
+
using UnityEngine;
|
|
8
|
+
using UnityEditor;
|
|
9
|
+
|
|
10
|
+
[CustomPropertyDrawer(typeof(WShowIfAttribute))]
|
|
11
|
+
public sealed class WShowIfPropertyDrawer : PropertyDrawer
|
|
12
|
+
{
|
|
13
|
+
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
|
|
14
|
+
{
|
|
15
|
+
return !ShouldShow(property) ? 0f : EditorGUI.GetPropertyHeight(property, label, true);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
|
19
|
+
{
|
|
20
|
+
if (ShouldShow(property))
|
|
21
|
+
{
|
|
22
|
+
EditorGUI.PropertyField(position, property, label, true);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
private bool ShouldShow(SerializedProperty property)
|
|
27
|
+
{
|
|
28
|
+
if (attribute is not WShowIfAttribute showIf)
|
|
29
|
+
{
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
SerializedProperty conditionProperty = property.serializedObject.FindProperty(
|
|
34
|
+
showIf.conditionField
|
|
35
|
+
);
|
|
36
|
+
if (conditionProperty is not { propertyType: SerializedPropertyType.Boolean })
|
|
37
|
+
{
|
|
38
|
+
if (conditionProperty != null)
|
|
39
|
+
{
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// This might not be a unity object, so fall back to reflection
|
|
44
|
+
object enclosingObject = property.GetEnclosingObject(out _);
|
|
45
|
+
FieldInfo conditionField = enclosingObject
|
|
46
|
+
?.GetType()
|
|
47
|
+
.GetField(
|
|
48
|
+
showIf.conditionField,
|
|
49
|
+
BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic
|
|
50
|
+
);
|
|
51
|
+
if (conditionField?.GetValue(enclosingObject) is bool maybeCondition)
|
|
52
|
+
{
|
|
53
|
+
return showIf.inverse ? !maybeCondition : maybeCondition;
|
|
54
|
+
}
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
bool condition = conditionProperty.boolValue;
|
|
59
|
+
return showIf.inverse ? !condition : condition;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
#endif
|
|
63
|
+
}
|