com.wallstop-studios.unity-helpers 2.0.0-rc58 → 2.0.0-rc60
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 +75 -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 +213 -209
- package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs +6 -6
- package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
- package/Runtime/Core/Attributes/NotNullAttribute.cs +32 -32
- package/Runtime/Core/Attributes/ParentComponent.cs +185 -185
- package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +14 -14
- package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +117 -117
- package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +101 -101
- package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes/WShowIfAttribute.cs +16 -16
- package/Runtime/Core/Attributes.meta +8 -8
- package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +92 -92
- package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +185 -185
- package/Runtime/Core/DataStructure/Adapters/KGuid.cs +305 -305
- package/Runtime/Core/DataStructure/Adapters/KVector2.cs +80 -80
- package/Runtime/Core/DataStructure/Circle.cs +50 -50
- package/Runtime/Core/DataStructure/CyclicBuffer.cs +193 -153
- package/Runtime/Core/DataStructure/ISpatialTree.cs +60 -60
- package/Runtime/Core/DataStructure/ISpatialTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/KDTree.cs +292 -292
- package/Runtime/Core/DataStructure/KDTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/QuadTree.cs +287 -287
- package/Runtime/Core/DataStructure/RTree.cs +346 -346
- package/Runtime/Core/DataStructure/RTree.cs.meta +11 -11
- package/Runtime/Core/DataStructure/StringWrapper.cs +91 -91
- package/Runtime/Core/DataStructure/TimedCache.cs +66 -66
- package/Runtime/Core/Extension/AnimatorExtensions.cs +25 -25
- package/Runtime/Core/Extension/AsyncOperationExtensions.cs +110 -110
- package/Runtime/Core/Extension/CircleExtensions.cs +25 -25
- package/Runtime/Core/Extension/ColorExtensions.cs +629 -629
- package/Runtime/Core/Extension/DictionaryExtensions.cs +279 -279
- package/Runtime/Core/Extension/DirectionExtensions.cs +213 -213
- package/Runtime/Core/Extension/EnumExtensions.cs +37 -37
- package/Runtime/Core/Extension/EnumExtensions.cs.meta +2 -2
- package/Runtime/Core/Extension/HashSetExtensions.cs +12 -12
- package/Runtime/Core/Extension/IEnumerableExtensions.cs +122 -122
- package/Runtime/Core/Extension/IListExtensions.cs +146 -106
- package/Runtime/Core/Extension/LoggingExtensions.cs +264 -258
- package/Runtime/Core/Extension/RandomExtensions.cs +109 -109
- package/Runtime/Core/Extension/SerializedPropertyExtensions.cs +157 -157
- package/Runtime/Core/Extension/StringExtensions.cs +180 -151
- package/Runtime/Core/Extension/UnityExtensions.cs +1608 -1608
- package/Runtime/Core/Helper/ArrayConverter.cs +39 -39
- package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
- package/Runtime/Core/Helper/AssignUtilities.cs +14 -14
- package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
- package/Runtime/Core/Helper/DirectoryHelper.cs +132 -0
- package/Runtime/Core/Helper/DirectoryHelper.cs.meta +3 -0
- package/Runtime/Core/Helper/Enumerables.cs +17 -17
- package/Runtime/Core/Helper/FormattingHelpers.cs +32 -32
- package/Runtime/Core/Helper/Geometry.cs +43 -43
- package/Runtime/Core/Helper/Helpers.cs +722 -722
- package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
- package/Runtime/Core/Helper/IterationHelpers.cs +32 -32
- package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
- package/Runtime/Core/Helper/LifetimeHelpers.cs +13 -13
- package/Runtime/Core/Helper/Objects.cs +769 -769
- package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
- package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/MathHelpers.cs +30 -30
- package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +388 -388
- package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/TransformHelpers.cs +189 -189
- package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials.meta +2 -2
- package/Runtime/Core/Helper/ReflectionHelpers.cs +452 -452
- package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/SceneHelper.cs +209 -209
- package/Runtime/Core/Helper/SpriteHelpers.cs +41 -41
- package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
- package/Runtime/Core/Helper/StringInList.cs +31 -31
- package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
- package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs +82 -82
- package/Runtime/Core/Helper/WallMath.cs +166 -166
- package/Runtime/Core/Math/Line.cs +55 -55
- package/Runtime/Core/Math/Parabola.cs +47 -47
- package/Runtime/Core/Math/PointPolygonCheck.cs +36 -36
- package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
- package/Runtime/Core/Math/Range.cs +92 -92
- package/Runtime/Core/Math/XXHash.cs +310 -310
- package/Runtime/Core/Math/XXHash.cs.meta +11 -11
- package/Runtime/Core/Model/Direction.cs +43 -43
- package/Runtime/Core/OneOf/FastOneOf.cs +152 -152
- package/Runtime/Core/OneOf/None.cs +4 -4
- package/Runtime/Core/Random/AbstractRandom.cs +585 -585
- package/Runtime/Core/Random/DotNetRandom.cs +54 -54
- package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
- package/Runtime/Core/Random/IRandom.cs +161 -161
- package/Runtime/Core/Random/LinearCongruentialGenerator.cs +49 -49
- package/Runtime/Core/Random/NativePcgRandom.cs +97 -97
- package/Runtime/Core/Random/PRNG.cs +7 -7
- package/Runtime/Core/Random/PRNG.cs.meta +2 -2
- package/Runtime/Core/Random/PcgRandom.cs +149 -149
- package/Runtime/Core/Random/PerlinNoise.cs +369 -369
- package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
- package/Runtime/Core/Random/RandomState.cs +131 -131
- package/Runtime/Core/Random/RandomUtilities.cs +26 -26
- package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
- package/Runtime/Core/Random/RomuDuo.cs +116 -116
- package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
- package/Runtime/Core/Random/SplitMix64.cs +94 -94
- package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
- package/Runtime/Core/Random/SquirrelRandom.cs +84 -84
- package/Runtime/Core/Random/SystemRandom.cs +162 -162
- package/Runtime/Core/Random/ThreadLocalRandom.cs +12 -12
- package/Runtime/Core/Random/UnityRandom.cs +57 -57
- package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
- package/Runtime/Core/Random/WyRandom.cs +121 -121
- package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
- package/Runtime/Core/Random/XorShiftRandom.cs +52 -52
- package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
- package/Runtime/Core/Random/XorShiroRandom.cs +119 -119
- package/Runtime/Core/Random/XorShiroRandom.cs.meta +2 -2
- package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs +88 -88
- package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs +37 -37
- package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs +218 -218
- package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs +28 -28
- package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +74 -74
- package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +81 -81
- package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs +88 -88
- package/Runtime/Core/Serialization/Serializer.cs +195 -195
- package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +113 -113
- package/Runtime/Protobuf-Net/System.Buffers.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Collections.Immutable.xml +5379 -5379
- package/Runtime/Protobuf-Net/System.Collections.Immutable.xml.meta +7 -7
- package/Runtime/Protobuf-Net/System.Numerics.Vectors.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml +290 -290
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml.meta +7 -7
- package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
- package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
- package/Runtime/UI/LayeredImage.cs +364 -364
- package/Runtime/UI/LayeredImage.cs.meta +2 -2
- package/Runtime/UI.meta +2 -2
- package/Runtime/Utils/AnimationEventEqualityComparer.cs +161 -161
- package/Runtime/Utils/AnimatorEnumStateMachine.cs +88 -88
- package/Runtime/Utils/Buffers.cs +33 -33
- package/Runtime/Utils/CenterPointOffset.cs +30 -30
- package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
- package/Runtime/Utils/CircleLineRenderer.cs +134 -134
- package/Runtime/Utils/CoroutineHandler.cs +4 -4
- package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
- package/Runtime/Utils/DeferredDisposalResult.cs +23 -23
- package/Runtime/Utils/MatchColliderToSprite.cs +94 -94
- package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
- package/Runtime/Utils/Oscillator.cs +27 -27
- package/Runtime/Utils/RuntimeSingleton.cs +71 -69
- package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
- package/Runtime/Utils/SetTextureImportData.cs +69 -69
- package/Runtime/Utils/SpriteRendererMetadata.cs +374 -374
- package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
- package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
- package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
- package/Runtime/Utils/StartTracker.cs +15 -0
- package/Runtime/Utils/StartTracker.cs.meta +3 -0
- package/Runtime/Utils/TextureScale.cs +179 -179
- package/Runtime/Utils/TextureScale.cs.meta +2 -2
- package/Runtime/Utils/UnityObjectNameComparer.cs +33 -0
- package/Runtime/Utils/UnityObjectNameComparer.cs.meta +3 -0
- package/Runtime/WallstopStudios.UnityHelpers.asmdef +13 -13
- package/Tests/Runtime/Attributes/ChildComponentTests.cs +81 -81
- package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
- package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
- package/Tests/Runtime/Attributes/ParentComponentTests.cs +68 -68
- package/Tests/Runtime/Components/RelationalComponentTesterComplex.cs +34 -34
- package/Tests/Runtime/Components/RelationalComponentTesterComplex.cs.meta +2 -2
- package/Tests/Runtime/Components/RelationalComponentsTesterSimple.cs +40 -40
- package/Tests/Runtime/Components.meta +2 -2
- package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +324 -324
- package/Tests/Runtime/DataStructures/QuadTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +130 -130
- package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +14 -14
- package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs.meta +11 -11
- package/Tests/Runtime/DataStructures.meta +8 -8
- package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +439 -439
- package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/EnumExtensionTests.cs +128 -128
- package/Tests/Runtime/Extensions/EnumExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/IListExtensionTests.cs +104 -104
- package/Tests/Runtime/Extensions/RandomExtensionTests.cs +27 -27
- package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/StringExtensionTests.cs +31 -31
- package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions.meta +2 -2
- package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
- package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/FormattingHelperTests.cs +129 -129
- package/Tests/Runtime/Helper/FormattingHelperTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/ObjectHelperTests.cs +402 -402
- package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/ReflectionHelperTests.cs +536 -536
- package/Tests/Runtime/Helper/SceneHelperTests.cs +94 -94
- package/Tests/Runtime/Helper/WallMathTests.cs +233 -233
- package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
- package/Tests/Runtime/Helper.meta +2 -2
- package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +14 -14
- package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +14 -14
- package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/RandomPerformanceTests.cs +180 -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,39 +1,39 @@
|
|
|
1
|
-
namespace UnityHelpers.Core.Helper
|
|
2
|
-
{
|
|
3
|
-
using System;
|
|
4
|
-
|
|
5
|
-
public static class ArrayConverter
|
|
6
|
-
{
|
|
7
|
-
public static byte[] IntArrayToByteArrayBlockCopy(int[] ints)
|
|
8
|
-
{
|
|
9
|
-
if (ints == null)
|
|
10
|
-
{
|
|
11
|
-
throw new ArgumentNullException(nameof(ints));
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
byte[] bytes = new byte[ints.Length * sizeof(int)];
|
|
15
|
-
Buffer.BlockCopy(ints, 0, bytes, 0, bytes.Length);
|
|
16
|
-
return bytes;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
public static int[] ByteArrayToIntArrayBlockCopy(byte[] bytes)
|
|
20
|
-
{
|
|
21
|
-
if (bytes == null)
|
|
22
|
-
{
|
|
23
|
-
throw new ArgumentNullException(nameof(bytes), "Byte array cannot be null.");
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (bytes.Length % sizeof(int) != 0)
|
|
27
|
-
{
|
|
28
|
-
throw new ArgumentException(
|
|
29
|
-
$"Byte array length must be a multiple of {sizeof(int)}.",
|
|
30
|
-
nameof(bytes)
|
|
31
|
-
);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
int[] ints = new int[bytes.Length / sizeof(int)];
|
|
35
|
-
Buffer.BlockCopy(bytes, 0, ints, 0, bytes.Length);
|
|
36
|
-
return ints;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
1
|
+
namespace UnityHelpers.Core.Helper
|
|
2
|
+
{
|
|
3
|
+
using System;
|
|
4
|
+
|
|
5
|
+
public static class ArrayConverter
|
|
6
|
+
{
|
|
7
|
+
public static byte[] IntArrayToByteArrayBlockCopy(int[] ints)
|
|
8
|
+
{
|
|
9
|
+
if (ints == null)
|
|
10
|
+
{
|
|
11
|
+
throw new ArgumentNullException(nameof(ints));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
byte[] bytes = new byte[ints.Length * sizeof(int)];
|
|
15
|
+
Buffer.BlockCopy(ints, 0, bytes, 0, bytes.Length);
|
|
16
|
+
return bytes;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public static int[] ByteArrayToIntArrayBlockCopy(byte[] bytes)
|
|
20
|
+
{
|
|
21
|
+
if (bytes == null)
|
|
22
|
+
{
|
|
23
|
+
throw new ArgumentNullException(nameof(bytes), "Byte array cannot be null.");
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (bytes.Length % sizeof(int) != 0)
|
|
27
|
+
{
|
|
28
|
+
throw new ArgumentException(
|
|
29
|
+
$"Byte array length must be a multiple of {sizeof(int)}.",
|
|
30
|
+
nameof(bytes)
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
int[] ints = new int[bytes.Length / sizeof(int)];
|
|
35
|
+
Buffer.BlockCopy(bytes, 0, ints, 0, bytes.Length);
|
|
36
|
+
return ints;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: fa2c6f423a9448a59a9d243b1833d88d
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: fa2c6f423a9448a59a9d243b1833d88d
|
|
3
3
|
timeCreated: 1732491761
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
namespace UnityHelpers.Core.Helper
|
|
2
|
-
{
|
|
3
|
-
public static class AssignUtilities
|
|
4
|
-
{
|
|
5
|
-
// Exchanges the assignTo to have the value of assignFrom.
|
|
6
|
-
// Returns the old value of AssignTo.
|
|
7
|
-
public static T Exchange<T>(ref T assignTo, T assignFrom)
|
|
8
|
-
{
|
|
9
|
-
T oldValue = assignTo;
|
|
10
|
-
assignTo = assignFrom;
|
|
11
|
-
return oldValue;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
}
|
|
1
|
+
namespace UnityHelpers.Core.Helper
|
|
2
|
+
{
|
|
3
|
+
public static class AssignUtilities
|
|
4
|
+
{
|
|
5
|
+
// Exchanges the assignTo to have the value of assignFrom.
|
|
6
|
+
// Returns the old value of AssignTo.
|
|
7
|
+
public static T Exchange<T>(ref T assignTo, T assignFrom)
|
|
8
|
+
{
|
|
9
|
+
T oldValue = assignTo;
|
|
10
|
+
assignTo = assignFrom;
|
|
11
|
+
return oldValue;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 29464873736a45fc8db9b5241457e65e
|
|
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: 29464873736a45fc8db9b5241457e65e
|
|
3
|
+
MonoImporter:
|
|
4
|
+
externalObjects: {}
|
|
5
|
+
serializedVersion: 2
|
|
6
|
+
defaultReferences: []
|
|
7
|
+
executionOrder: 0
|
|
8
|
+
icon: {instanceID: 0}
|
|
9
|
+
userData:
|
|
10
|
+
assetBundleName:
|
|
11
|
+
assetBundleVariant:
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
namespace UnityHelpers.Core.Helper
|
|
2
|
+
{
|
|
3
|
+
using System;
|
|
4
|
+
using System.IO;
|
|
5
|
+
using System.Runtime.CompilerServices;
|
|
6
|
+
using UnityEngine;
|
|
7
|
+
|
|
8
|
+
public static class DirectoryHelper
|
|
9
|
+
{
|
|
10
|
+
public static string GetCallerScriptDirectory([CallerFilePath] string sourceFilePath = "")
|
|
11
|
+
{
|
|
12
|
+
return string.IsNullOrWhiteSpace(sourceFilePath)
|
|
13
|
+
? string.Empty
|
|
14
|
+
: Path.GetDirectoryName(sourceFilePath);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
public static string FindPackageRootPath(string startDirectory)
|
|
18
|
+
{
|
|
19
|
+
return FindRootPath(
|
|
20
|
+
startDirectory,
|
|
21
|
+
path => File.Exists(Path.Combine(path, "package.json"))
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public static string FindRootPath(
|
|
26
|
+
string startDirectory,
|
|
27
|
+
Func<string, bool> terminalCondition
|
|
28
|
+
)
|
|
29
|
+
{
|
|
30
|
+
string currentPath = startDirectory;
|
|
31
|
+
while (!string.IsNullOrWhiteSpace(currentPath))
|
|
32
|
+
{
|
|
33
|
+
try
|
|
34
|
+
{
|
|
35
|
+
if (terminalCondition(currentPath))
|
|
36
|
+
{
|
|
37
|
+
DirectoryInfo directoryInfo = new(currentPath);
|
|
38
|
+
if (!directoryInfo.Exists)
|
|
39
|
+
{
|
|
40
|
+
return currentPath;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return directoryInfo.FullName;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch
|
|
47
|
+
{
|
|
48
|
+
return currentPath;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
try
|
|
52
|
+
{
|
|
53
|
+
string parentPath = Path.GetDirectoryName(currentPath);
|
|
54
|
+
if (string.Equals(parentPath, currentPath, StringComparison.OrdinalIgnoreCase))
|
|
55
|
+
{
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
currentPath = parentPath;
|
|
60
|
+
}
|
|
61
|
+
catch
|
|
62
|
+
{
|
|
63
|
+
return currentPath;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return string.Empty;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
public static string FindAbsolutePathToDirectory(string directory)
|
|
71
|
+
{
|
|
72
|
+
string scriptDirectory = GetCallerScriptDirectory();
|
|
73
|
+
if (string.IsNullOrEmpty(scriptDirectory))
|
|
74
|
+
{
|
|
75
|
+
return string.Empty;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
string packageRootAbsolute = FindPackageRootPath(scriptDirectory);
|
|
79
|
+
if (string.IsNullOrEmpty(packageRootAbsolute))
|
|
80
|
+
{
|
|
81
|
+
return string.Empty;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
string targetPathAbsolute = Path.Combine(
|
|
85
|
+
packageRootAbsolute,
|
|
86
|
+
directory.Replace('/', Path.DirectorySeparatorChar)
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
return AbsoluteToUnityRelativePath(targetPathAbsolute);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
public static string AbsoluteToUnityRelativePath(string absolutePath)
|
|
93
|
+
{
|
|
94
|
+
if (string.IsNullOrWhiteSpace(absolutePath))
|
|
95
|
+
{
|
|
96
|
+
return string.Empty;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
absolutePath = absolutePath.Replace('\\', '/');
|
|
100
|
+
string projectRoot = Application.dataPath.Replace('\\', '/');
|
|
101
|
+
|
|
102
|
+
projectRoot = Path.GetDirectoryName(projectRoot)?.Replace('\\', '/');
|
|
103
|
+
if (string.IsNullOrWhiteSpace(projectRoot))
|
|
104
|
+
{
|
|
105
|
+
return string.Empty;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (absolutePath.StartsWith(projectRoot, StringComparison.OrdinalIgnoreCase))
|
|
109
|
+
{
|
|
110
|
+
// +1 to remove the leading slash only if projectRoot doesn't end with one
|
|
111
|
+
int startIndex = projectRoot.EndsWith("/", StringComparison.OrdinalIgnoreCase)
|
|
112
|
+
? projectRoot.Length
|
|
113
|
+
: projectRoot.Length + 1;
|
|
114
|
+
return absolutePath.Length > startIndex ? absolutePath[startIndex..] : string.Empty;
|
|
115
|
+
}
|
|
116
|
+
if (absolutePath.StartsWith(projectRoot, StringComparison.OrdinalIgnoreCase))
|
|
117
|
+
{
|
|
118
|
+
int startIndex = projectRoot.EndsWith("/", StringComparison.OrdinalIgnoreCase)
|
|
119
|
+
? projectRoot.Length
|
|
120
|
+
: projectRoot.Length + 1;
|
|
121
|
+
if (startIndex < absolutePath.Length)
|
|
122
|
+
{
|
|
123
|
+
return "Assets/" + absolutePath[startIndex..];
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
return "Assets";
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return string.Empty;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
namespace UnityHelpers.Core.Helper
|
|
2
|
-
{
|
|
3
|
-
using System.Collections.Generic;
|
|
4
|
-
|
|
5
|
-
public static class Enumerables
|
|
6
|
-
{
|
|
7
|
-
public static IEnumerable<T> Of<T>(T element)
|
|
8
|
-
{
|
|
9
|
-
return new[] { element };
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
public static IEnumerable<T> Of<T>(params T[] elements)
|
|
13
|
-
{
|
|
14
|
-
return elements;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
1
|
+
namespace UnityHelpers.Core.Helper
|
|
2
|
+
{
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
|
|
5
|
+
public static class Enumerables
|
|
6
|
+
{
|
|
7
|
+
public static IEnumerable<T> Of<T>(T element)
|
|
8
|
+
{
|
|
9
|
+
return new[] { element };
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
public static IEnumerable<T> Of<T>(params T[] elements)
|
|
13
|
+
{
|
|
14
|
+
return elements;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
namespace UnityHelpers.Core.Helper
|
|
2
|
-
{
|
|
3
|
-
using System;
|
|
4
|
-
|
|
5
|
-
public static class FormattingHelpers
|
|
6
|
-
{
|
|
7
|
-
private static readonly string[] ByteSizes = { "B", "KB", "MB", "GB", "TB", "PB", "EB" };
|
|
8
|
-
|
|
9
|
-
public static string FormatBytes(long bytes)
|
|
10
|
-
{
|
|
11
|
-
bytes = Math.Max(0L, bytes);
|
|
12
|
-
double len = bytes;
|
|
13
|
-
int order = 0;
|
|
14
|
-
|
|
15
|
-
const int byteInChunk = 1024;
|
|
16
|
-
while (byteInChunk <= len)
|
|
17
|
-
{
|
|
18
|
-
len /= byteInChunk;
|
|
19
|
-
if (order < ByteSizes.Length - 1)
|
|
20
|
-
{
|
|
21
|
-
++order;
|
|
22
|
-
}
|
|
23
|
-
else
|
|
24
|
-
{
|
|
25
|
-
throw new ArgumentException($"Too many bytes! Cannot parse {bytes}");
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return $"{len:0.##} {ByteSizes[order]}";
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
1
|
+
namespace UnityHelpers.Core.Helper
|
|
2
|
+
{
|
|
3
|
+
using System;
|
|
4
|
+
|
|
5
|
+
public static class FormattingHelpers
|
|
6
|
+
{
|
|
7
|
+
private static readonly string[] ByteSizes = { "B", "KB", "MB", "GB", "TB", "PB", "EB" };
|
|
8
|
+
|
|
9
|
+
public static string FormatBytes(long bytes)
|
|
10
|
+
{
|
|
11
|
+
bytes = Math.Max(0L, bytes);
|
|
12
|
+
double len = bytes;
|
|
13
|
+
int order = 0;
|
|
14
|
+
|
|
15
|
+
const int byteInChunk = 1024;
|
|
16
|
+
while (byteInChunk <= len)
|
|
17
|
+
{
|
|
18
|
+
len /= byteInChunk;
|
|
19
|
+
if (order < ByteSizes.Length - 1)
|
|
20
|
+
{
|
|
21
|
+
++order;
|
|
22
|
+
}
|
|
23
|
+
else
|
|
24
|
+
{
|
|
25
|
+
throw new ArgumentException($"Too many bytes! Cannot parse {bytes}");
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return $"{len:0.##} {ByteSizes[order]}";
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
namespace UnityHelpers.Core.Helper
|
|
2
|
-
{
|
|
3
|
-
using System.Collections.Generic;
|
|
4
|
-
using System.Linq;
|
|
5
|
-
using UnityEngine;
|
|
6
|
-
|
|
7
|
-
public static class Geometry
|
|
8
|
-
{
|
|
9
|
-
public static Rect Accumulate(this IEnumerable<Rect> rects)
|
|
10
|
-
{
|
|
11
|
-
return rects.Aggregate(
|
|
12
|
-
(accumulated, next) =>
|
|
13
|
-
new Rect(
|
|
14
|
-
Mathf.Min(accumulated.xMin, next.xMin),
|
|
15
|
-
Mathf.Min(accumulated.yMin, next.yMin),
|
|
16
|
-
Mathf.Max(accumulated.xMax, next.xMax)
|
|
17
|
-
- Mathf.Min(accumulated.xMin, next.xMin),
|
|
18
|
-
Mathf.Max(accumulated.yMax, next.yMax)
|
|
19
|
-
- Mathf.Min(accumulated.yMin, next.yMin)
|
|
20
|
-
)
|
|
21
|
-
);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
//Where is p in relation to a-b
|
|
25
|
-
// < 0 -> to the right
|
|
26
|
-
// = 0 -> on the line
|
|
27
|
-
// > 0 -> to the left
|
|
28
|
-
public static float IsAPointLeftOfVectorOrOnTheLine(Vector2 a, Vector2 b, Vector2 p)
|
|
29
|
-
{
|
|
30
|
-
return (a.x - p.x) * (b.y - p.y) - (a.y - p.y) * (b.x - p.x);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
public static float IsAPointLeftOfVectorOrOnTheLine(Vector3 a, Vector3 b, Vector3 p)
|
|
34
|
-
{
|
|
35
|
-
return (a.x - p.x) * (b.y - p.y) - (a.y - p.y) * (b.x - p.x);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
public static int IsAPointLeftOfVectorOrOnTheLine(Vector2Int a, Vector2Int b, Vector2Int p)
|
|
39
|
-
{
|
|
40
|
-
return (a.x - p.x) * (b.y - p.y) - (a.y - p.y) * (b.x - p.x);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
1
|
+
namespace UnityHelpers.Core.Helper
|
|
2
|
+
{
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
using System.Linq;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
|
|
7
|
+
public static class Geometry
|
|
8
|
+
{
|
|
9
|
+
public static Rect Accumulate(this IEnumerable<Rect> rects)
|
|
10
|
+
{
|
|
11
|
+
return rects.Aggregate(
|
|
12
|
+
(accumulated, next) =>
|
|
13
|
+
new Rect(
|
|
14
|
+
Mathf.Min(accumulated.xMin, next.xMin),
|
|
15
|
+
Mathf.Min(accumulated.yMin, next.yMin),
|
|
16
|
+
Mathf.Max(accumulated.xMax, next.xMax)
|
|
17
|
+
- Mathf.Min(accumulated.xMin, next.xMin),
|
|
18
|
+
Mathf.Max(accumulated.yMax, next.yMax)
|
|
19
|
+
- Mathf.Min(accumulated.yMin, next.yMin)
|
|
20
|
+
)
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
//Where is p in relation to a-b
|
|
25
|
+
// < 0 -> to the right
|
|
26
|
+
// = 0 -> on the line
|
|
27
|
+
// > 0 -> to the left
|
|
28
|
+
public static float IsAPointLeftOfVectorOrOnTheLine(Vector2 a, Vector2 b, Vector2 p)
|
|
29
|
+
{
|
|
30
|
+
return (a.x - p.x) * (b.y - p.y) - (a.y - p.y) * (b.x - p.x);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public static float IsAPointLeftOfVectorOrOnTheLine(Vector3 a, Vector3 b, Vector3 p)
|
|
34
|
+
{
|
|
35
|
+
return (a.x - p.x) * (b.y - p.y) - (a.y - p.y) * (b.x - p.x);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public static int IsAPointLeftOfVectorOrOnTheLine(Vector2Int a, Vector2Int b, Vector2Int p)
|
|
39
|
+
{
|
|
40
|
+
return (a.x - p.x) * (b.y - p.y) - (a.y - p.y) * (b.x - p.x);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|