com.wallstop-studios.unity-helpers 2.0.0-rc56 → 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 -108
- 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 -80
- 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,101 +1,101 @@
|
|
|
1
|
-
namespace UnityHelpers.Core.Attributes
|
|
2
|
-
{
|
|
3
|
-
using System;
|
|
4
|
-
using System.Collections;
|
|
5
|
-
using System.Collections.Generic;
|
|
6
|
-
using System.Linq;
|
|
7
|
-
using System.Reflection;
|
|
8
|
-
using Extension;
|
|
9
|
-
using Helper;
|
|
10
|
-
using JetBrains.Annotations;
|
|
11
|
-
using Object = UnityEngine.Object;
|
|
12
|
-
|
|
13
|
-
[AttributeUsage(AttributeTargets.Field)]
|
|
14
|
-
[MeansImplicitUse]
|
|
15
|
-
public sealed class ValidateAssignmentAttribute : Attribute { }
|
|
16
|
-
|
|
17
|
-
public static class ValidateAssignmentExtensions
|
|
18
|
-
{
|
|
19
|
-
private static readonly Dictionary<Type, FieldInfo[]> FieldsByType = new();
|
|
20
|
-
|
|
21
|
-
private static FieldInfo[] GetOrAdd(Type objectType)
|
|
22
|
-
{
|
|
23
|
-
return FieldsByType.GetOrAdd(
|
|
24
|
-
objectType,
|
|
25
|
-
type =>
|
|
26
|
-
type.GetFields(
|
|
27
|
-
BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic
|
|
28
|
-
)
|
|
29
|
-
.Where(prop =>
|
|
30
|
-
Attribute.IsDefined(prop, typeof(ValidateAssignmentAttribute))
|
|
31
|
-
)
|
|
32
|
-
.ToArray()
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
public static void ValidateAssignments(this Object o)
|
|
37
|
-
{
|
|
38
|
-
#if UNITY_EDITOR
|
|
39
|
-
Type objectType = o.GetType();
|
|
40
|
-
FieldInfo[] fields = GetOrAdd(objectType);
|
|
41
|
-
|
|
42
|
-
foreach (FieldInfo field in fields)
|
|
43
|
-
{
|
|
44
|
-
bool logNotAssigned = IsFieldInvalid(field, o);
|
|
45
|
-
|
|
46
|
-
if (logNotAssigned)
|
|
47
|
-
{
|
|
48
|
-
o.LogNotAssigned(field.Name);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
#endif
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
public static bool AreAnyAssignmentsInvalid(this Object o)
|
|
55
|
-
{
|
|
56
|
-
Type objectType = o.GetType();
|
|
57
|
-
FieldInfo[] fields = GetOrAdd(objectType);
|
|
58
|
-
|
|
59
|
-
foreach (FieldInfo field in fields)
|
|
60
|
-
{
|
|
61
|
-
if (IsFieldInvalid(field, o))
|
|
62
|
-
{
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
private static bool IsInvalid(IEnumerable enumerable)
|
|
71
|
-
{
|
|
72
|
-
IEnumerator enumerator = enumerable.GetEnumerator();
|
|
73
|
-
try
|
|
74
|
-
{
|
|
75
|
-
return !enumerator.MoveNext();
|
|
76
|
-
}
|
|
77
|
-
finally
|
|
78
|
-
{
|
|
79
|
-
if (enumerator is IDisposable disposable)
|
|
80
|
-
{
|
|
81
|
-
disposable.Dispose();
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
private static bool IsFieldInvalid(FieldInfo field, Object o)
|
|
87
|
-
{
|
|
88
|
-
object fieldValue = field.GetValue(o);
|
|
89
|
-
|
|
90
|
-
return fieldValue switch
|
|
91
|
-
{
|
|
92
|
-
Object unityObject => !unityObject,
|
|
93
|
-
string stringValue => string.IsNullOrWhiteSpace(stringValue),
|
|
94
|
-
IList list => list.Count <= 0,
|
|
95
|
-
ICollection collection => collection.Count <= 0,
|
|
96
|
-
IEnumerable enumerable => IsInvalid(enumerable),
|
|
97
|
-
_ => fieldValue == null,
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
1
|
+
namespace UnityHelpers.Core.Attributes
|
|
2
|
+
{
|
|
3
|
+
using System;
|
|
4
|
+
using System.Collections;
|
|
5
|
+
using System.Collections.Generic;
|
|
6
|
+
using System.Linq;
|
|
7
|
+
using System.Reflection;
|
|
8
|
+
using Extension;
|
|
9
|
+
using Helper;
|
|
10
|
+
using JetBrains.Annotations;
|
|
11
|
+
using Object = UnityEngine.Object;
|
|
12
|
+
|
|
13
|
+
[AttributeUsage(AttributeTargets.Field)]
|
|
14
|
+
[MeansImplicitUse]
|
|
15
|
+
public sealed class ValidateAssignmentAttribute : Attribute { }
|
|
16
|
+
|
|
17
|
+
public static class ValidateAssignmentExtensions
|
|
18
|
+
{
|
|
19
|
+
private static readonly Dictionary<Type, FieldInfo[]> FieldsByType = new();
|
|
20
|
+
|
|
21
|
+
private static FieldInfo[] GetOrAdd(Type objectType)
|
|
22
|
+
{
|
|
23
|
+
return FieldsByType.GetOrAdd(
|
|
24
|
+
objectType,
|
|
25
|
+
type =>
|
|
26
|
+
type.GetFields(
|
|
27
|
+
BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic
|
|
28
|
+
)
|
|
29
|
+
.Where(prop =>
|
|
30
|
+
Attribute.IsDefined(prop, typeof(ValidateAssignmentAttribute))
|
|
31
|
+
)
|
|
32
|
+
.ToArray()
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public static void ValidateAssignments(this Object o)
|
|
37
|
+
{
|
|
38
|
+
#if UNITY_EDITOR
|
|
39
|
+
Type objectType = o.GetType();
|
|
40
|
+
FieldInfo[] fields = GetOrAdd(objectType);
|
|
41
|
+
|
|
42
|
+
foreach (FieldInfo field in fields)
|
|
43
|
+
{
|
|
44
|
+
bool logNotAssigned = IsFieldInvalid(field, o);
|
|
45
|
+
|
|
46
|
+
if (logNotAssigned)
|
|
47
|
+
{
|
|
48
|
+
o.LogNotAssigned(field.Name);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
#endif
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
public static bool AreAnyAssignmentsInvalid(this Object o)
|
|
55
|
+
{
|
|
56
|
+
Type objectType = o.GetType();
|
|
57
|
+
FieldInfo[] fields = GetOrAdd(objectType);
|
|
58
|
+
|
|
59
|
+
foreach (FieldInfo field in fields)
|
|
60
|
+
{
|
|
61
|
+
if (IsFieldInvalid(field, o))
|
|
62
|
+
{
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
private static bool IsInvalid(IEnumerable enumerable)
|
|
71
|
+
{
|
|
72
|
+
IEnumerator enumerator = enumerable.GetEnumerator();
|
|
73
|
+
try
|
|
74
|
+
{
|
|
75
|
+
return !enumerator.MoveNext();
|
|
76
|
+
}
|
|
77
|
+
finally
|
|
78
|
+
{
|
|
79
|
+
if (enumerator is IDisposable disposable)
|
|
80
|
+
{
|
|
81
|
+
disposable.Dispose();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
private static bool IsFieldInvalid(FieldInfo field, Object o)
|
|
87
|
+
{
|
|
88
|
+
object fieldValue = field.GetValue(o);
|
|
89
|
+
|
|
90
|
+
return fieldValue switch
|
|
91
|
+
{
|
|
92
|
+
Object unityObject => !unityObject,
|
|
93
|
+
string stringValue => string.IsNullOrWhiteSpace(stringValue),
|
|
94
|
+
IList list => list.Count <= 0,
|
|
95
|
+
ICollection collection => collection.Count <= 0,
|
|
96
|
+
IEnumerable enumerable => IsInvalid(enumerable),
|
|
97
|
+
_ => fieldValue == null,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: b7257e9c0b064297b84ba827599da046
|
|
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: b7257e9c0b064297b84ba827599da046
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
namespace UnityHelpers.Core.Attributes
|
|
2
|
-
{
|
|
3
|
-
using UnityEngine;
|
|
4
|
-
|
|
5
|
-
public sealed class WShowIfAttribute : PropertyAttribute
|
|
6
|
-
{
|
|
7
|
-
public readonly string conditionField;
|
|
8
|
-
public readonly bool inverse;
|
|
9
|
-
|
|
10
|
-
public WShowIfAttribute(string conditionField, bool inverse = false)
|
|
11
|
-
{
|
|
12
|
-
this.conditionField = conditionField;
|
|
13
|
-
this.inverse = inverse;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
1
|
+
namespace UnityHelpers.Core.Attributes
|
|
2
|
+
{
|
|
3
|
+
using UnityEngine;
|
|
4
|
+
|
|
5
|
+
public sealed class WShowIfAttribute : PropertyAttribute
|
|
6
|
+
{
|
|
7
|
+
public readonly string conditionField;
|
|
8
|
+
public readonly bool inverse;
|
|
9
|
+
|
|
10
|
+
public WShowIfAttribute(string conditionField, bool inverse = false)
|
|
11
|
+
{
|
|
12
|
+
this.conditionField = conditionField;
|
|
13
|
+
this.inverse = inverse;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 139606485fde4f4ea168e7a8cf721a8a
|
|
3
|
-
folderAsset: yes
|
|
4
|
-
DefaultImporter:
|
|
5
|
-
externalObjects: {}
|
|
6
|
-
userData:
|
|
7
|
-
assetBundleName:
|
|
8
|
-
assetBundleVariant:
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 139606485fde4f4ea168e7a8cf721a8a
|
|
3
|
+
folderAsset: yes
|
|
4
|
+
DefaultImporter:
|
|
5
|
+
externalObjects: {}
|
|
6
|
+
userData:
|
|
7
|
+
assetBundleName:
|
|
8
|
+
assetBundleVariant:
|
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
namespace UnityHelpers.Core.DataStructure.Adapters
|
|
2
|
-
{
|
|
3
|
-
using System;
|
|
4
|
-
using System.Runtime.CompilerServices;
|
|
5
|
-
using Helper;
|
|
6
|
-
using ProtoBuf;
|
|
7
|
-
using UnityEngine;
|
|
8
|
-
|
|
9
|
-
[Serializable]
|
|
10
|
-
[ProtoContract]
|
|
11
|
-
public struct FastVector2Int : IEquatable<FastVector2Int>
|
|
12
|
-
{
|
|
13
|
-
[ProtoMember(1)]
|
|
14
|
-
public int x;
|
|
15
|
-
|
|
16
|
-
[ProtoMember(2)]
|
|
17
|
-
public int y;
|
|
18
|
-
|
|
19
|
-
private int _hash;
|
|
20
|
-
|
|
21
|
-
public FastVector2Int(int x, int y)
|
|
22
|
-
{
|
|
23
|
-
this.x = x;
|
|
24
|
-
this.y = y;
|
|
25
|
-
|
|
26
|
-
_hash = Objects.ValueTypeHashCode(x, y);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
public static implicit operator Vector2Int(FastVector2Int vector)
|
|
30
|
-
{
|
|
31
|
-
return new Vector2Int(vector.x, vector.y);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
public static implicit operator FastVector2Int(FastVector3Int vector)
|
|
35
|
-
{
|
|
36
|
-
return new FastVector2Int(vector.x, vector.y);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
public static implicit operator FastVector2Int(Vector2Int vector)
|
|
40
|
-
{
|
|
41
|
-
return new FastVector2Int(vector.x, vector.y);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
public static FastVector2Int operator +(FastVector2Int lhs, FastVector2Int rhs)
|
|
45
|
-
{
|
|
46
|
-
return new FastVector2Int(lhs.x + rhs.x, lhs.y + rhs.y);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
public static FastVector2Int operator -(FastVector2Int lhs, FastVector2Int rhs)
|
|
50
|
-
{
|
|
51
|
-
return new FastVector2Int(lhs.x - rhs.x, lhs.y - rhs.y);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
55
|
-
public bool Equals(FastVector2Int other)
|
|
56
|
-
{
|
|
57
|
-
return GetHashCode() == other.GetHashCode() && x == other.x && y == other.y;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
61
|
-
public override bool Equals(object obj)
|
|
62
|
-
{
|
|
63
|
-
return obj is FastVector2Int other && Equals(other);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
67
|
-
public override int GetHashCode()
|
|
68
|
-
{
|
|
69
|
-
if (_hash == 0)
|
|
70
|
-
{
|
|
71
|
-
_hash = Objects.ValueTypeHashCode(x, y);
|
|
72
|
-
}
|
|
73
|
-
return _hash;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
public override string ToString()
|
|
77
|
-
{
|
|
78
|
-
return $"({x}, {y})";
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
[ProtoAfterDeserialization]
|
|
82
|
-
private void AfterDeserialize()
|
|
83
|
-
{
|
|
84
|
-
_hash = Objects.ValueTypeHashCode(x, y);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
public readonly FastVector3Int AsFastVector3Int()
|
|
88
|
-
{
|
|
89
|
-
return new FastVector3Int(x, y);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
1
|
+
namespace UnityHelpers.Core.DataStructure.Adapters
|
|
2
|
+
{
|
|
3
|
+
using System;
|
|
4
|
+
using System.Runtime.CompilerServices;
|
|
5
|
+
using Helper;
|
|
6
|
+
using ProtoBuf;
|
|
7
|
+
using UnityEngine;
|
|
8
|
+
|
|
9
|
+
[Serializable]
|
|
10
|
+
[ProtoContract]
|
|
11
|
+
public struct FastVector2Int : IEquatable<FastVector2Int>
|
|
12
|
+
{
|
|
13
|
+
[ProtoMember(1)]
|
|
14
|
+
public int x;
|
|
15
|
+
|
|
16
|
+
[ProtoMember(2)]
|
|
17
|
+
public int y;
|
|
18
|
+
|
|
19
|
+
private int _hash;
|
|
20
|
+
|
|
21
|
+
public FastVector2Int(int x, int y)
|
|
22
|
+
{
|
|
23
|
+
this.x = x;
|
|
24
|
+
this.y = y;
|
|
25
|
+
|
|
26
|
+
_hash = Objects.ValueTypeHashCode(x, y);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public static implicit operator Vector2Int(FastVector2Int vector)
|
|
30
|
+
{
|
|
31
|
+
return new Vector2Int(vector.x, vector.y);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public static implicit operator FastVector2Int(FastVector3Int vector)
|
|
35
|
+
{
|
|
36
|
+
return new FastVector2Int(vector.x, vector.y);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public static implicit operator FastVector2Int(Vector2Int vector)
|
|
40
|
+
{
|
|
41
|
+
return new FastVector2Int(vector.x, vector.y);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public static FastVector2Int operator +(FastVector2Int lhs, FastVector2Int rhs)
|
|
45
|
+
{
|
|
46
|
+
return new FastVector2Int(lhs.x + rhs.x, lhs.y + rhs.y);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
public static FastVector2Int operator -(FastVector2Int lhs, FastVector2Int rhs)
|
|
50
|
+
{
|
|
51
|
+
return new FastVector2Int(lhs.x - rhs.x, lhs.y - rhs.y);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
55
|
+
public bool Equals(FastVector2Int other)
|
|
56
|
+
{
|
|
57
|
+
return GetHashCode() == other.GetHashCode() && x == other.x && y == other.y;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
61
|
+
public override bool Equals(object obj)
|
|
62
|
+
{
|
|
63
|
+
return obj is FastVector2Int other && Equals(other);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
|
67
|
+
public override int GetHashCode()
|
|
68
|
+
{
|
|
69
|
+
if (_hash == 0)
|
|
70
|
+
{
|
|
71
|
+
_hash = Objects.ValueTypeHashCode(x, y);
|
|
72
|
+
}
|
|
73
|
+
return _hash;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
public override string ToString()
|
|
77
|
+
{
|
|
78
|
+
return $"({x}, {y})";
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
[ProtoAfterDeserialization]
|
|
82
|
+
private void AfterDeserialize()
|
|
83
|
+
{
|
|
84
|
+
_hash = Objects.ValueTypeHashCode(x, y);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
public readonly FastVector3Int AsFastVector3Int()
|
|
88
|
+
{
|
|
89
|
+
return new FastVector3Int(x, y);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|