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,312 +1,312 @@
|
|
|
1
|
-
namespace UnityHelpers.Utils
|
|
2
|
-
{
|
|
3
|
-
using System.Collections.Generic;
|
|
4
|
-
using System.Linq;
|
|
5
|
-
using Core.Attributes;
|
|
6
|
-
using UnityEngine;
|
|
7
|
-
|
|
8
|
-
/// <summary>
|
|
9
|
-
/// Keeps stack-like track of Colors and Materials of SpriteRenderers
|
|
10
|
-
/// </summary>
|
|
11
|
-
[DisallowMultipleComponent]
|
|
12
|
-
public sealed class SpriteRendererMetadata : MonoBehaviour
|
|
13
|
-
{
|
|
14
|
-
private readonly List<(Component component, Color color)> _colorStack = new();
|
|
15
|
-
private readonly List<(Component component, Material material)> _materialStack = new();
|
|
16
|
-
|
|
17
|
-
private readonly List<(Component component, Color color)> _colorStackCache = new();
|
|
18
|
-
private readonly List<(Component component, Material material)> _materialStackCache = new();
|
|
19
|
-
|
|
20
|
-
public Color OriginalColor => _colorStack[0].color;
|
|
21
|
-
|
|
22
|
-
public Color CurrentColor => _colorStack[^1].color;
|
|
23
|
-
|
|
24
|
-
public Material OriginalMaterial => _materialStack[0].material;
|
|
25
|
-
|
|
26
|
-
public Material CurrentMaterial => _materialStack[^1].material;
|
|
27
|
-
|
|
28
|
-
public IEnumerable<Material> Materials => _materialStack.Select(entry => entry.material);
|
|
29
|
-
|
|
30
|
-
public IEnumerable<Color> Colors => _colorStack.Select(entry => entry.color);
|
|
31
|
-
|
|
32
|
-
[SiblingComponent]
|
|
33
|
-
[SerializeField]
|
|
34
|
-
private SpriteRenderer _spriteRenderer;
|
|
35
|
-
|
|
36
|
-
private bool _enabled;
|
|
37
|
-
|
|
38
|
-
public void PushColor(Component component, Color color, bool force = false)
|
|
39
|
-
{
|
|
40
|
-
if (component == this)
|
|
41
|
-
{
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
if (!force && !enabled)
|
|
46
|
-
{
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
InternalPushColor(component, color);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
private void InternalPushColor(Component component, Color color)
|
|
54
|
-
{
|
|
55
|
-
RemoveColor(component);
|
|
56
|
-
_colorStack.Add((component, color));
|
|
57
|
-
_spriteRenderer.color = CurrentColor;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
public void PushBackColor(Component component, Color color, bool force = false)
|
|
61
|
-
{
|
|
62
|
-
if (component == this)
|
|
63
|
-
{
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (!force && !enabled)
|
|
68
|
-
{
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
RemoveColor(component);
|
|
73
|
-
_colorStack.Insert(1, (component, color));
|
|
74
|
-
_spriteRenderer.color = CurrentColor;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
public void PopColor(Component component)
|
|
78
|
-
{
|
|
79
|
-
RemoveColor(component);
|
|
80
|
-
_spriteRenderer.color = CurrentColor;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
public bool TryGetColor(Component component, out Color color)
|
|
84
|
-
{
|
|
85
|
-
int index = _colorStack.FindIndex(value => value.component == component);
|
|
86
|
-
if (index < 0)
|
|
87
|
-
{
|
|
88
|
-
color = default;
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
color = _colorStack[index].color;
|
|
93
|
-
return true;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/// <summary>
|
|
97
|
-
/// Inserts a material as "first in the queue".
|
|
98
|
-
/// </summary>
|
|
99
|
-
/// <param name="component">Component that owns the material.</param>
|
|
100
|
-
/// <param name="material">Material to use.</param>
|
|
101
|
-
/// <param name="force">If true, overrides the enable check.</param>
|
|
102
|
-
/// <returns>The instanced material, if possible.</returns>
|
|
103
|
-
public Material PushMaterial(Component component, Material material, bool force = false)
|
|
104
|
-
{
|
|
105
|
-
if (component == this)
|
|
106
|
-
{
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
if (!force && !enabled)
|
|
111
|
-
{
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
#if UNITY_EDITOR
|
|
116
|
-
if (!Application.isPlaying)
|
|
117
|
-
{
|
|
118
|
-
return null;
|
|
119
|
-
}
|
|
120
|
-
#endif
|
|
121
|
-
return InternalPushMaterial(component, material);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
private Material InternalPushMaterial(Component component, Material material)
|
|
125
|
-
{
|
|
126
|
-
RemoveMaterial(component);
|
|
127
|
-
_spriteRenderer.material = material;
|
|
128
|
-
Material instanced = _spriteRenderer.material;
|
|
129
|
-
_materialStack.Add((component, instanced));
|
|
130
|
-
return instanced;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/// <summary>
|
|
134
|
-
/// Inserts a material as "last in the queue".
|
|
135
|
-
/// </summary>
|
|
136
|
-
/// <param name="component">Component that owns the material.</param>
|
|
137
|
-
/// <param name="material">Material to use.</param>
|
|
138
|
-
/// <param name="force">If true, overrides the enable check.</param>
|
|
139
|
-
/// <returns>The instanced material, if possible.</returns>
|
|
140
|
-
public Material PushBackMaterial(Component component, Material material, bool force = false)
|
|
141
|
-
{
|
|
142
|
-
if (component == this)
|
|
143
|
-
{
|
|
144
|
-
return null;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
if (!force && !enabled)
|
|
148
|
-
{
|
|
149
|
-
return null;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
#if UNITY_EDITOR
|
|
153
|
-
if (!Application.isPlaying)
|
|
154
|
-
{
|
|
155
|
-
return null;
|
|
156
|
-
}
|
|
157
|
-
#endif
|
|
158
|
-
|
|
159
|
-
RemoveMaterial(component);
|
|
160
|
-
Material instanced = material;
|
|
161
|
-
if (_materialStack.Count <= 1)
|
|
162
|
-
{
|
|
163
|
-
_spriteRenderer.material = material;
|
|
164
|
-
instanced = _spriteRenderer.material;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
_materialStack.Insert(1, (component, instanced));
|
|
168
|
-
return instanced;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
public void PopMaterial(Component component)
|
|
172
|
-
{
|
|
173
|
-
#if UNITY_EDITOR
|
|
174
|
-
if (!Application.isPlaying)
|
|
175
|
-
{
|
|
176
|
-
return;
|
|
177
|
-
}
|
|
178
|
-
#endif
|
|
179
|
-
|
|
180
|
-
RemoveMaterial(component);
|
|
181
|
-
_spriteRenderer.material = CurrentMaterial;
|
|
182
|
-
Material instanced = _spriteRenderer.material;
|
|
183
|
-
Component currentComponent = _materialStack[^1].component;
|
|
184
|
-
_materialStack[^1] = (currentComponent, instanced);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
public bool TryGetMaterial(Component component, out Material material)
|
|
188
|
-
{
|
|
189
|
-
int index = _materialStack.FindIndex(value => value.component == component);
|
|
190
|
-
if (index < 0)
|
|
191
|
-
{
|
|
192
|
-
material = default;
|
|
193
|
-
return false;
|
|
194
|
-
}
|
|
195
|
-
material = _materialStack[index].material;
|
|
196
|
-
return true;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
private void Awake()
|
|
200
|
-
{
|
|
201
|
-
if (_spriteRenderer == null)
|
|
202
|
-
{
|
|
203
|
-
this.AssignSiblingComponents();
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
InternalPushColor(this, _spriteRenderer.color);
|
|
207
|
-
_colorStackCache.AddRange(_colorStack);
|
|
208
|
-
_ = InternalPushMaterial(this, _spriteRenderer.material);
|
|
209
|
-
_materialStackCache.AddRange(_materialStack);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
private void OnEnable()
|
|
213
|
-
{
|
|
214
|
-
// Ignore the OnEnable call from when the object is first initialized
|
|
215
|
-
if (!_enabled)
|
|
216
|
-
{
|
|
217
|
-
_enabled = true;
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
_colorStack.Clear();
|
|
222
|
-
_colorStack.Add(_colorStackCache[0]);
|
|
223
|
-
List<(Component component, Color color)> colorBuffer = Buffers<(
|
|
224
|
-
Component component,
|
|
225
|
-
Color color
|
|
226
|
-
)>.List;
|
|
227
|
-
colorBuffer.Clear();
|
|
228
|
-
colorBuffer.AddRange(_colorStackCache);
|
|
229
|
-
for (int i = 1; i < colorBuffer.Count; ++i)
|
|
230
|
-
{
|
|
231
|
-
(Component component, Color color) entry = colorBuffer[i];
|
|
232
|
-
PushColor(entry.component, entry.color, force: true);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
_materialStack.Clear();
|
|
236
|
-
_materialStack.Add(_materialStackCache[0]);
|
|
237
|
-
List<(Component component, Material material)> materialBuffer = Buffers<(
|
|
238
|
-
Component component,
|
|
239
|
-
Material material
|
|
240
|
-
)>.List;
|
|
241
|
-
materialBuffer.Clear();
|
|
242
|
-
materialBuffer.AddRange(_materialStackCache);
|
|
243
|
-
for (int i = 1; i < materialBuffer.Count; ++i)
|
|
244
|
-
{
|
|
245
|
-
(Component component, Material material) entry = materialBuffer[i];
|
|
246
|
-
PushMaterial(entry.component, entry.material, force: true);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
private void OnDisable()
|
|
251
|
-
{
|
|
252
|
-
List<(Component component, Color color)> colorBuffer = Buffers<(
|
|
253
|
-
Component component,
|
|
254
|
-
Color color
|
|
255
|
-
)>.List;
|
|
256
|
-
colorBuffer.Clear();
|
|
257
|
-
colorBuffer.AddRange(_colorStack);
|
|
258
|
-
for (int i = colorBuffer.Count - 1; 1 <= i; --i)
|
|
259
|
-
{
|
|
260
|
-
PopColor(colorBuffer[i].component);
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
_colorStackCache.Clear();
|
|
264
|
-
_colorStackCache.AddRange(colorBuffer);
|
|
265
|
-
|
|
266
|
-
List<(Component component, Material material)> materialBuffer = Buffers<(
|
|
267
|
-
Component component,
|
|
268
|
-
Material material
|
|
269
|
-
)>.List;
|
|
270
|
-
materialBuffer.Clear();
|
|
271
|
-
materialBuffer.AddRange(_materialStack);
|
|
272
|
-
|
|
273
|
-
for (int i = materialBuffer.Count - 1; 1 <= i; --i)
|
|
274
|
-
{
|
|
275
|
-
PopMaterial(materialBuffer[i].component);
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
_materialStackCache.Clear();
|
|
279
|
-
_materialStackCache.AddRange(materialBuffer);
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
private void RemoveColor(Component component)
|
|
283
|
-
{
|
|
284
|
-
if (component == this)
|
|
285
|
-
{
|
|
286
|
-
return;
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
_ = _colorStack.RemoveAll(existingComponent =>
|
|
290
|
-
existingComponent.component == component || existingComponent.component == null
|
|
291
|
-
);
|
|
292
|
-
_ = _colorStackCache.RemoveAll(existingComponent =>
|
|
293
|
-
existingComponent.component == component || existingComponent.component == null
|
|
294
|
-
);
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
private void RemoveMaterial(Component component)
|
|
298
|
-
{
|
|
299
|
-
if (component == this)
|
|
300
|
-
{
|
|
301
|
-
return;
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
_ = _materialStack.RemoveAll(existingComponent =>
|
|
305
|
-
existingComponent.component == component || existingComponent.component == null
|
|
306
|
-
);
|
|
307
|
-
_ = _materialStackCache.RemoveAll(existingComponent =>
|
|
308
|
-
existingComponent.component == component || existingComponent.component == null
|
|
309
|
-
);
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
}
|
|
1
|
+
namespace UnityHelpers.Utils
|
|
2
|
+
{
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
using System.Linq;
|
|
5
|
+
using Core.Attributes;
|
|
6
|
+
using UnityEngine;
|
|
7
|
+
|
|
8
|
+
/// <summary>
|
|
9
|
+
/// Keeps stack-like track of Colors and Materials of SpriteRenderers
|
|
10
|
+
/// </summary>
|
|
11
|
+
[DisallowMultipleComponent]
|
|
12
|
+
public sealed class SpriteRendererMetadata : MonoBehaviour
|
|
13
|
+
{
|
|
14
|
+
private readonly List<(Component component, Color color)> _colorStack = new();
|
|
15
|
+
private readonly List<(Component component, Material material)> _materialStack = new();
|
|
16
|
+
|
|
17
|
+
private readonly List<(Component component, Color color)> _colorStackCache = new();
|
|
18
|
+
private readonly List<(Component component, Material material)> _materialStackCache = new();
|
|
19
|
+
|
|
20
|
+
public Color OriginalColor => _colorStack[0].color;
|
|
21
|
+
|
|
22
|
+
public Color CurrentColor => _colorStack[^1].color;
|
|
23
|
+
|
|
24
|
+
public Material OriginalMaterial => _materialStack[0].material;
|
|
25
|
+
|
|
26
|
+
public Material CurrentMaterial => _materialStack[^1].material;
|
|
27
|
+
|
|
28
|
+
public IEnumerable<Material> Materials => _materialStack.Select(entry => entry.material);
|
|
29
|
+
|
|
30
|
+
public IEnumerable<Color> Colors => _colorStack.Select(entry => entry.color);
|
|
31
|
+
|
|
32
|
+
[SiblingComponent]
|
|
33
|
+
[SerializeField]
|
|
34
|
+
private SpriteRenderer _spriteRenderer;
|
|
35
|
+
|
|
36
|
+
private bool _enabled;
|
|
37
|
+
|
|
38
|
+
public void PushColor(Component component, Color color, bool force = false)
|
|
39
|
+
{
|
|
40
|
+
if (component == this)
|
|
41
|
+
{
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (!force && !enabled)
|
|
46
|
+
{
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
InternalPushColor(component, color);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
private void InternalPushColor(Component component, Color color)
|
|
54
|
+
{
|
|
55
|
+
RemoveColor(component);
|
|
56
|
+
_colorStack.Add((component, color));
|
|
57
|
+
_spriteRenderer.color = CurrentColor;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
public void PushBackColor(Component component, Color color, bool force = false)
|
|
61
|
+
{
|
|
62
|
+
if (component == this)
|
|
63
|
+
{
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (!force && !enabled)
|
|
68
|
+
{
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
RemoveColor(component);
|
|
73
|
+
_colorStack.Insert(1, (component, color));
|
|
74
|
+
_spriteRenderer.color = CurrentColor;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
public void PopColor(Component component)
|
|
78
|
+
{
|
|
79
|
+
RemoveColor(component);
|
|
80
|
+
_spriteRenderer.color = CurrentColor;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
public bool TryGetColor(Component component, out Color color)
|
|
84
|
+
{
|
|
85
|
+
int index = _colorStack.FindIndex(value => value.component == component);
|
|
86
|
+
if (index < 0)
|
|
87
|
+
{
|
|
88
|
+
color = default;
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
color = _colorStack[index].color;
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/// <summary>
|
|
97
|
+
/// Inserts a material as "first in the queue".
|
|
98
|
+
/// </summary>
|
|
99
|
+
/// <param name="component">Component that owns the material.</param>
|
|
100
|
+
/// <param name="material">Material to use.</param>
|
|
101
|
+
/// <param name="force">If true, overrides the enable check.</param>
|
|
102
|
+
/// <returns>The instanced material, if possible.</returns>
|
|
103
|
+
public Material PushMaterial(Component component, Material material, bool force = false)
|
|
104
|
+
{
|
|
105
|
+
if (component == this)
|
|
106
|
+
{
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (!force && !enabled)
|
|
111
|
+
{
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
#if UNITY_EDITOR
|
|
116
|
+
if (!Application.isPlaying)
|
|
117
|
+
{
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
#endif
|
|
121
|
+
return InternalPushMaterial(component, material);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
private Material InternalPushMaterial(Component component, Material material)
|
|
125
|
+
{
|
|
126
|
+
RemoveMaterial(component);
|
|
127
|
+
_spriteRenderer.material = material;
|
|
128
|
+
Material instanced = _spriteRenderer.material;
|
|
129
|
+
_materialStack.Add((component, instanced));
|
|
130
|
+
return instanced;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/// <summary>
|
|
134
|
+
/// Inserts a material as "last in the queue".
|
|
135
|
+
/// </summary>
|
|
136
|
+
/// <param name="component">Component that owns the material.</param>
|
|
137
|
+
/// <param name="material">Material to use.</param>
|
|
138
|
+
/// <param name="force">If true, overrides the enable check.</param>
|
|
139
|
+
/// <returns>The instanced material, if possible.</returns>
|
|
140
|
+
public Material PushBackMaterial(Component component, Material material, bool force = false)
|
|
141
|
+
{
|
|
142
|
+
if (component == this)
|
|
143
|
+
{
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if (!force && !enabled)
|
|
148
|
+
{
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
#if UNITY_EDITOR
|
|
153
|
+
if (!Application.isPlaying)
|
|
154
|
+
{
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
#endif
|
|
158
|
+
|
|
159
|
+
RemoveMaterial(component);
|
|
160
|
+
Material instanced = material;
|
|
161
|
+
if (_materialStack.Count <= 1)
|
|
162
|
+
{
|
|
163
|
+
_spriteRenderer.material = material;
|
|
164
|
+
instanced = _spriteRenderer.material;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
_materialStack.Insert(1, (component, instanced));
|
|
168
|
+
return instanced;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
public void PopMaterial(Component component)
|
|
172
|
+
{
|
|
173
|
+
#if UNITY_EDITOR
|
|
174
|
+
if (!Application.isPlaying)
|
|
175
|
+
{
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
#endif
|
|
179
|
+
|
|
180
|
+
RemoveMaterial(component);
|
|
181
|
+
_spriteRenderer.material = CurrentMaterial;
|
|
182
|
+
Material instanced = _spriteRenderer.material;
|
|
183
|
+
Component currentComponent = _materialStack[^1].component;
|
|
184
|
+
_materialStack[^1] = (currentComponent, instanced);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
public bool TryGetMaterial(Component component, out Material material)
|
|
188
|
+
{
|
|
189
|
+
int index = _materialStack.FindIndex(value => value.component == component);
|
|
190
|
+
if (index < 0)
|
|
191
|
+
{
|
|
192
|
+
material = default;
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
material = _materialStack[index].material;
|
|
196
|
+
return true;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
private void Awake()
|
|
200
|
+
{
|
|
201
|
+
if (_spriteRenderer == null)
|
|
202
|
+
{
|
|
203
|
+
this.AssignSiblingComponents();
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
InternalPushColor(this, _spriteRenderer.color);
|
|
207
|
+
_colorStackCache.AddRange(_colorStack);
|
|
208
|
+
_ = InternalPushMaterial(this, _spriteRenderer.material);
|
|
209
|
+
_materialStackCache.AddRange(_materialStack);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
private void OnEnable()
|
|
213
|
+
{
|
|
214
|
+
// Ignore the OnEnable call from when the object is first initialized
|
|
215
|
+
if (!_enabled)
|
|
216
|
+
{
|
|
217
|
+
_enabled = true;
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
_colorStack.Clear();
|
|
222
|
+
_colorStack.Add(_colorStackCache[0]);
|
|
223
|
+
List<(Component component, Color color)> colorBuffer = Buffers<(
|
|
224
|
+
Component component,
|
|
225
|
+
Color color
|
|
226
|
+
)>.List;
|
|
227
|
+
colorBuffer.Clear();
|
|
228
|
+
colorBuffer.AddRange(_colorStackCache);
|
|
229
|
+
for (int i = 1; i < colorBuffer.Count; ++i)
|
|
230
|
+
{
|
|
231
|
+
(Component component, Color color) entry = colorBuffer[i];
|
|
232
|
+
PushColor(entry.component, entry.color, force: true);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
_materialStack.Clear();
|
|
236
|
+
_materialStack.Add(_materialStackCache[0]);
|
|
237
|
+
List<(Component component, Material material)> materialBuffer = Buffers<(
|
|
238
|
+
Component component,
|
|
239
|
+
Material material
|
|
240
|
+
)>.List;
|
|
241
|
+
materialBuffer.Clear();
|
|
242
|
+
materialBuffer.AddRange(_materialStackCache);
|
|
243
|
+
for (int i = 1; i < materialBuffer.Count; ++i)
|
|
244
|
+
{
|
|
245
|
+
(Component component, Material material) entry = materialBuffer[i];
|
|
246
|
+
PushMaterial(entry.component, entry.material, force: true);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
private void OnDisable()
|
|
251
|
+
{
|
|
252
|
+
List<(Component component, Color color)> colorBuffer = Buffers<(
|
|
253
|
+
Component component,
|
|
254
|
+
Color color
|
|
255
|
+
)>.List;
|
|
256
|
+
colorBuffer.Clear();
|
|
257
|
+
colorBuffer.AddRange(_colorStack);
|
|
258
|
+
for (int i = colorBuffer.Count - 1; 1 <= i; --i)
|
|
259
|
+
{
|
|
260
|
+
PopColor(colorBuffer[i].component);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
_colorStackCache.Clear();
|
|
264
|
+
_colorStackCache.AddRange(colorBuffer);
|
|
265
|
+
|
|
266
|
+
List<(Component component, Material material)> materialBuffer = Buffers<(
|
|
267
|
+
Component component,
|
|
268
|
+
Material material
|
|
269
|
+
)>.List;
|
|
270
|
+
materialBuffer.Clear();
|
|
271
|
+
materialBuffer.AddRange(_materialStack);
|
|
272
|
+
|
|
273
|
+
for (int i = materialBuffer.Count - 1; 1 <= i; --i)
|
|
274
|
+
{
|
|
275
|
+
PopMaterial(materialBuffer[i].component);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
_materialStackCache.Clear();
|
|
279
|
+
_materialStackCache.AddRange(materialBuffer);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
private void RemoveColor(Component component)
|
|
283
|
+
{
|
|
284
|
+
if (component == this)
|
|
285
|
+
{
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
_ = _colorStack.RemoveAll(existingComponent =>
|
|
290
|
+
existingComponent.component == component || existingComponent.component == null
|
|
291
|
+
);
|
|
292
|
+
_ = _colorStackCache.RemoveAll(existingComponent =>
|
|
293
|
+
existingComponent.component == component || existingComponent.component == null
|
|
294
|
+
);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
private void RemoveMaterial(Component component)
|
|
298
|
+
{
|
|
299
|
+
if (component == this)
|
|
300
|
+
{
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
_ = _materialStack.RemoveAll(existingComponent =>
|
|
305
|
+
existingComponent.component == component || existingComponent.component == null
|
|
306
|
+
);
|
|
307
|
+
_ = _materialStackCache.RemoveAll(existingComponent =>
|
|
308
|
+
existingComponent.component == component || existingComponent.component == null
|
|
309
|
+
);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 7b2d3d00a0e140fea968fea4859c1781
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 7b2d3d00a0e140fea968fea4859c1781
|
|
3
3
|
timeCreated: 1720397272
|