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,134 +1,134 @@
|
|
|
1
|
-
namespace UnityHelpers.Utils
|
|
2
|
-
{
|
|
3
|
-
using Core.Attributes;
|
|
4
|
-
using Core.Extension;
|
|
5
|
-
using Core.Helper;
|
|
6
|
-
using Core.Random;
|
|
7
|
-
using UnityEngine;
|
|
8
|
-
|
|
9
|
-
[RequireComponent(typeof(LineRenderer))]
|
|
10
|
-
[RequireComponent(typeof(CircleCollider2D))]
|
|
11
|
-
[DisallowMultipleComponent]
|
|
12
|
-
public sealed class CircleLineRenderer : MonoBehaviour
|
|
13
|
-
{
|
|
14
|
-
public float minLineWidth = 0.005f;
|
|
15
|
-
public float maxLineWidth = 0.02f;
|
|
16
|
-
public int numSegments = 4;
|
|
17
|
-
public int baseSegments = 4;
|
|
18
|
-
public float updateRateSeconds = 0.1f;
|
|
19
|
-
public Color color = Color.grey;
|
|
20
|
-
|
|
21
|
-
public Vector3 Offset
|
|
22
|
-
{
|
|
23
|
-
get => _offset;
|
|
24
|
-
set => transform.localPosition = _offset = value;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
[SiblingComponent]
|
|
28
|
-
private CircleCollider2D _collider;
|
|
29
|
-
|
|
30
|
-
[SiblingComponent]
|
|
31
|
-
private LineRenderer[] _lineRenderers;
|
|
32
|
-
|
|
33
|
-
private Vector3 _offset;
|
|
34
|
-
|
|
35
|
-
private Coroutine _update;
|
|
36
|
-
|
|
37
|
-
private void Awake()
|
|
38
|
-
{
|
|
39
|
-
this.AssignSiblingComponents();
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
private void OnEnable()
|
|
43
|
-
{
|
|
44
|
-
if (_update != null)
|
|
45
|
-
{
|
|
46
|
-
StopCoroutine(_update);
|
|
47
|
-
}
|
|
48
|
-
_update = this.StartFunctionAsCoroutine(Render, updateRateSeconds);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
private void OnDisable()
|
|
52
|
-
{
|
|
53
|
-
if (_update != null)
|
|
54
|
-
{
|
|
55
|
-
StopCoroutine(_update);
|
|
56
|
-
_update = null;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
private void OnValidate()
|
|
61
|
-
{
|
|
62
|
-
if (numSegments <= 2)
|
|
63
|
-
{
|
|
64
|
-
this.LogWarn("Invalid number of segments {0}.", numSegments);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (updateRateSeconds <= 0)
|
|
68
|
-
{
|
|
69
|
-
this.LogWarn("Invalid update rate {0}.", updateRateSeconds);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (maxLineWidth < minLineWidth)
|
|
73
|
-
{
|
|
74
|
-
this.LogWarn(
|
|
75
|
-
"MaxLineWidth {0} smaller than MinLineWidth {1}.",
|
|
76
|
-
maxLineWidth,
|
|
77
|
-
minLineWidth
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
private void Update()
|
|
83
|
-
{
|
|
84
|
-
foreach (LineRenderer lineRenderer in _lineRenderers)
|
|
85
|
-
{
|
|
86
|
-
lineRenderer.enabled = _collider.enabled;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
private void Render()
|
|
91
|
-
{
|
|
92
|
-
foreach (LineRenderer lineRenderer in _lineRenderers)
|
|
93
|
-
{
|
|
94
|
-
if (!lineRenderer.enabled)
|
|
95
|
-
{
|
|
96
|
-
lineRenderer.positionCount = 0;
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
lineRenderer.startColor = color;
|
|
101
|
-
lineRenderer.endColor = color;
|
|
102
|
-
lineRenderer.loop = true;
|
|
103
|
-
lineRenderer.positionCount = numSegments;
|
|
104
|
-
|
|
105
|
-
// ReSharper disable once CompareOfFloatsByEqualityOperator
|
|
106
|
-
float lineWidth =
|
|
107
|
-
minLineWidth == maxLineWidth
|
|
108
|
-
? minLineWidth
|
|
109
|
-
: PRNG.Instance.NextFloat(minLineWidth, maxLineWidth);
|
|
110
|
-
|
|
111
|
-
lineRenderer.startWidth = lineWidth;
|
|
112
|
-
lineRenderer.endWidth = lineWidth;
|
|
113
|
-
lineRenderer.useWorldSpace = false; // All below positions are local space
|
|
114
|
-
float distanceMultiplier = _collider.radius;
|
|
115
|
-
|
|
116
|
-
float angle = 360f / numSegments;
|
|
117
|
-
float offsetRadians = PRNG.Instance.NextFloat(angle);
|
|
118
|
-
float currentOffset = offsetRadians;
|
|
119
|
-
Vector3[] positions = new Vector3[numSegments];
|
|
120
|
-
for (int i = 0; i < numSegments; ++i)
|
|
121
|
-
{
|
|
122
|
-
positions[i] =
|
|
123
|
-
new Vector3(
|
|
124
|
-
Mathf.Cos(Mathf.Deg2Rad * currentOffset),
|
|
125
|
-
Mathf.Sin(Mathf.Deg2Rad * currentOffset)
|
|
126
|
-
) * distanceMultiplier;
|
|
127
|
-
currentOffset += angle % 360f;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
lineRenderer.SetPositions(positions);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
1
|
+
namespace UnityHelpers.Utils
|
|
2
|
+
{
|
|
3
|
+
using Core.Attributes;
|
|
4
|
+
using Core.Extension;
|
|
5
|
+
using Core.Helper;
|
|
6
|
+
using Core.Random;
|
|
7
|
+
using UnityEngine;
|
|
8
|
+
|
|
9
|
+
[RequireComponent(typeof(LineRenderer))]
|
|
10
|
+
[RequireComponent(typeof(CircleCollider2D))]
|
|
11
|
+
[DisallowMultipleComponent]
|
|
12
|
+
public sealed class CircleLineRenderer : MonoBehaviour
|
|
13
|
+
{
|
|
14
|
+
public float minLineWidth = 0.005f;
|
|
15
|
+
public float maxLineWidth = 0.02f;
|
|
16
|
+
public int numSegments = 4;
|
|
17
|
+
public int baseSegments = 4;
|
|
18
|
+
public float updateRateSeconds = 0.1f;
|
|
19
|
+
public Color color = Color.grey;
|
|
20
|
+
|
|
21
|
+
public Vector3 Offset
|
|
22
|
+
{
|
|
23
|
+
get => _offset;
|
|
24
|
+
set => transform.localPosition = _offset = value;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
[SiblingComponent]
|
|
28
|
+
private CircleCollider2D _collider;
|
|
29
|
+
|
|
30
|
+
[SiblingComponent]
|
|
31
|
+
private LineRenderer[] _lineRenderers;
|
|
32
|
+
|
|
33
|
+
private Vector3 _offset;
|
|
34
|
+
|
|
35
|
+
private Coroutine _update;
|
|
36
|
+
|
|
37
|
+
private void Awake()
|
|
38
|
+
{
|
|
39
|
+
this.AssignSiblingComponents();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
private void OnEnable()
|
|
43
|
+
{
|
|
44
|
+
if (_update != null)
|
|
45
|
+
{
|
|
46
|
+
StopCoroutine(_update);
|
|
47
|
+
}
|
|
48
|
+
_update = this.StartFunctionAsCoroutine(Render, updateRateSeconds);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
private void OnDisable()
|
|
52
|
+
{
|
|
53
|
+
if (_update != null)
|
|
54
|
+
{
|
|
55
|
+
StopCoroutine(_update);
|
|
56
|
+
_update = null;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private void OnValidate()
|
|
61
|
+
{
|
|
62
|
+
if (numSegments <= 2)
|
|
63
|
+
{
|
|
64
|
+
this.LogWarn("Invalid number of segments {0}.", numSegments);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (updateRateSeconds <= 0)
|
|
68
|
+
{
|
|
69
|
+
this.LogWarn("Invalid update rate {0}.", updateRateSeconds);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if (maxLineWidth < minLineWidth)
|
|
73
|
+
{
|
|
74
|
+
this.LogWarn(
|
|
75
|
+
"MaxLineWidth {0} smaller than MinLineWidth {1}.",
|
|
76
|
+
maxLineWidth,
|
|
77
|
+
minLineWidth
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
private void Update()
|
|
83
|
+
{
|
|
84
|
+
foreach (LineRenderer lineRenderer in _lineRenderers)
|
|
85
|
+
{
|
|
86
|
+
lineRenderer.enabled = _collider.enabled;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
private void Render()
|
|
91
|
+
{
|
|
92
|
+
foreach (LineRenderer lineRenderer in _lineRenderers)
|
|
93
|
+
{
|
|
94
|
+
if (!lineRenderer.enabled)
|
|
95
|
+
{
|
|
96
|
+
lineRenderer.positionCount = 0;
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
lineRenderer.startColor = color;
|
|
101
|
+
lineRenderer.endColor = color;
|
|
102
|
+
lineRenderer.loop = true;
|
|
103
|
+
lineRenderer.positionCount = numSegments;
|
|
104
|
+
|
|
105
|
+
// ReSharper disable once CompareOfFloatsByEqualityOperator
|
|
106
|
+
float lineWidth =
|
|
107
|
+
minLineWidth == maxLineWidth
|
|
108
|
+
? minLineWidth
|
|
109
|
+
: PRNG.Instance.NextFloat(minLineWidth, maxLineWidth);
|
|
110
|
+
|
|
111
|
+
lineRenderer.startWidth = lineWidth;
|
|
112
|
+
lineRenderer.endWidth = lineWidth;
|
|
113
|
+
lineRenderer.useWorldSpace = false; // All below positions are local space
|
|
114
|
+
float distanceMultiplier = _collider.radius;
|
|
115
|
+
|
|
116
|
+
float angle = 360f / numSegments;
|
|
117
|
+
float offsetRadians = PRNG.Instance.NextFloat(angle);
|
|
118
|
+
float currentOffset = offsetRadians;
|
|
119
|
+
Vector3[] positions = new Vector3[numSegments];
|
|
120
|
+
for (int i = 0; i < numSegments; ++i)
|
|
121
|
+
{
|
|
122
|
+
positions[i] =
|
|
123
|
+
new Vector3(
|
|
124
|
+
Mathf.Cos(Mathf.Deg2Rad * currentOffset),
|
|
125
|
+
Mathf.Sin(Mathf.Deg2Rad * currentOffset)
|
|
126
|
+
) * distanceMultiplier;
|
|
127
|
+
currentOffset += angle % 360f;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
lineRenderer.SetPositions(positions);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
namespace UnityHelpers.Utils
|
|
2
|
-
{
|
|
3
|
-
public sealed class CoroutineHandler : RuntimeSingleton<CoroutineHandler> { }
|
|
4
|
-
}
|
|
1
|
+
namespace UnityHelpers.Utils
|
|
2
|
+
{
|
|
3
|
+
public sealed class CoroutineHandler : RuntimeSingleton<CoroutineHandler> { }
|
|
4
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: ba52cce99edd4592999c269422e4f20a
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: ba52cce99edd4592999c269422e4f20a
|
|
3
3
|
timeCreated: 1720740992
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
namespace UnityHelpers.Utils
|
|
2
|
-
{
|
|
3
|
-
using System;
|
|
4
|
-
using System.Threading.Tasks;
|
|
5
|
-
|
|
6
|
-
public readonly struct DeferredDisposalResult<T>
|
|
7
|
-
{
|
|
8
|
-
public readonly T result;
|
|
9
|
-
|
|
10
|
-
private readonly Func<ValueTask> _disposeAsync;
|
|
11
|
-
|
|
12
|
-
public DeferredDisposalResult(T result, Func<ValueTask> disposeAsync)
|
|
13
|
-
{
|
|
14
|
-
this.result = result;
|
|
15
|
-
_disposeAsync = disposeAsync ?? throw new ArgumentNullException(nameof(disposeAsync));
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
public async ValueTask DisposeAsync()
|
|
19
|
-
{
|
|
20
|
-
await _disposeAsync();
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
1
|
+
namespace UnityHelpers.Utils
|
|
2
|
+
{
|
|
3
|
+
using System;
|
|
4
|
+
using System.Threading.Tasks;
|
|
5
|
+
|
|
6
|
+
public readonly struct DeferredDisposalResult<T>
|
|
7
|
+
{
|
|
8
|
+
public readonly T result;
|
|
9
|
+
|
|
10
|
+
private readonly Func<ValueTask> _disposeAsync;
|
|
11
|
+
|
|
12
|
+
public DeferredDisposalResult(T result, Func<ValueTask> disposeAsync)
|
|
13
|
+
{
|
|
14
|
+
this.result = result;
|
|
15
|
+
_disposeAsync = disposeAsync ?? throw new ArgumentNullException(nameof(disposeAsync));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public async ValueTask DisposeAsync()
|
|
19
|
+
{
|
|
20
|
+
await _disposeAsync();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -1,94 +1,94 @@
|
|
|
1
|
-
namespace UnityHelpers.Utils
|
|
2
|
-
{
|
|
3
|
-
using System;
|
|
4
|
-
using System.Collections.Generic;
|
|
5
|
-
using UnityEngine;
|
|
6
|
-
using UnityEngine.Serialization;
|
|
7
|
-
using UnityEngine.UI;
|
|
8
|
-
|
|
9
|
-
[DisallowMultipleComponent]
|
|
10
|
-
public sealed class MatchColliderToSprite : MonoBehaviour
|
|
11
|
-
{
|
|
12
|
-
public Func<Sprite> spriteOverrideProducer;
|
|
13
|
-
|
|
14
|
-
[FormerlySerializedAs("_spriteRenderer")]
|
|
15
|
-
public SpriteRenderer spriteRenderer;
|
|
16
|
-
|
|
17
|
-
[FormerlySerializedAs("_image")]
|
|
18
|
-
public Image image;
|
|
19
|
-
|
|
20
|
-
[FormerlySerializedAs("_collider")]
|
|
21
|
-
public PolygonCollider2D polygonCollider;
|
|
22
|
-
|
|
23
|
-
private Sprite _lastHandled;
|
|
24
|
-
|
|
25
|
-
private void Awake()
|
|
26
|
-
{
|
|
27
|
-
OnValidate();
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
private void Update()
|
|
31
|
-
{
|
|
32
|
-
if (spriteOverrideProducer != null && _lastHandled == spriteOverrideProducer())
|
|
33
|
-
{
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (spriteRenderer != null && _lastHandled == spriteRenderer.sprite)
|
|
38
|
-
{
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (image != null && _lastHandled == image.sprite)
|
|
43
|
-
{
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
OnValidate();
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
public void OnValidate()
|
|
51
|
-
{
|
|
52
|
-
if (polygonCollider == null && !TryGetComponent(out polygonCollider))
|
|
53
|
-
{
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
Sprite sprite;
|
|
58
|
-
if (spriteOverrideProducer != null)
|
|
59
|
-
{
|
|
60
|
-
sprite = spriteOverrideProducer();
|
|
61
|
-
}
|
|
62
|
-
else if (spriteRenderer != null || TryGetComponent(out spriteRenderer))
|
|
63
|
-
{
|
|
64
|
-
sprite = spriteRenderer.sprite;
|
|
65
|
-
}
|
|
66
|
-
else if (image != null || TryGetComponent(out image))
|
|
67
|
-
{
|
|
68
|
-
sprite = image.sprite;
|
|
69
|
-
}
|
|
70
|
-
else
|
|
71
|
-
{
|
|
72
|
-
sprite = null;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
_lastHandled = sprite;
|
|
76
|
-
polygonCollider.points = Array.Empty<Vector2>();
|
|
77
|
-
if (_lastHandled == null)
|
|
78
|
-
{
|
|
79
|
-
polygonCollider.pathCount = 0;
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
int physicsShapes = _lastHandled.GetPhysicsShapeCount();
|
|
84
|
-
polygonCollider.pathCount = physicsShapes;
|
|
85
|
-
List<Vector2> buffer = Buffers<Vector2>.List;
|
|
86
|
-
for (int i = 0; i < physicsShapes; ++i)
|
|
87
|
-
{
|
|
88
|
-
buffer.Clear();
|
|
89
|
-
_ = _lastHandled.GetPhysicsShape(i, buffer);
|
|
90
|
-
polygonCollider.SetPath(i, buffer);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
1
|
+
namespace UnityHelpers.Utils
|
|
2
|
+
{
|
|
3
|
+
using System;
|
|
4
|
+
using System.Collections.Generic;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using UnityEngine.Serialization;
|
|
7
|
+
using UnityEngine.UI;
|
|
8
|
+
|
|
9
|
+
[DisallowMultipleComponent]
|
|
10
|
+
public sealed class MatchColliderToSprite : MonoBehaviour
|
|
11
|
+
{
|
|
12
|
+
public Func<Sprite> spriteOverrideProducer;
|
|
13
|
+
|
|
14
|
+
[FormerlySerializedAs("_spriteRenderer")]
|
|
15
|
+
public SpriteRenderer spriteRenderer;
|
|
16
|
+
|
|
17
|
+
[FormerlySerializedAs("_image")]
|
|
18
|
+
public Image image;
|
|
19
|
+
|
|
20
|
+
[FormerlySerializedAs("_collider")]
|
|
21
|
+
public PolygonCollider2D polygonCollider;
|
|
22
|
+
|
|
23
|
+
private Sprite _lastHandled;
|
|
24
|
+
|
|
25
|
+
private void Awake()
|
|
26
|
+
{
|
|
27
|
+
OnValidate();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
private void Update()
|
|
31
|
+
{
|
|
32
|
+
if (spriteOverrideProducer != null && _lastHandled == spriteOverrideProducer())
|
|
33
|
+
{
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (spriteRenderer != null && _lastHandled == spriteRenderer.sprite)
|
|
38
|
+
{
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (image != null && _lastHandled == image.sprite)
|
|
43
|
+
{
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
OnValidate();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public void OnValidate()
|
|
51
|
+
{
|
|
52
|
+
if (polygonCollider == null && !TryGetComponent(out polygonCollider))
|
|
53
|
+
{
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
Sprite sprite;
|
|
58
|
+
if (spriteOverrideProducer != null)
|
|
59
|
+
{
|
|
60
|
+
sprite = spriteOverrideProducer();
|
|
61
|
+
}
|
|
62
|
+
else if (spriteRenderer != null || TryGetComponent(out spriteRenderer))
|
|
63
|
+
{
|
|
64
|
+
sprite = spriteRenderer.sprite;
|
|
65
|
+
}
|
|
66
|
+
else if (image != null || TryGetComponent(out image))
|
|
67
|
+
{
|
|
68
|
+
sprite = image.sprite;
|
|
69
|
+
}
|
|
70
|
+
else
|
|
71
|
+
{
|
|
72
|
+
sprite = null;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
_lastHandled = sprite;
|
|
76
|
+
polygonCollider.points = Array.Empty<Vector2>();
|
|
77
|
+
if (_lastHandled == null)
|
|
78
|
+
{
|
|
79
|
+
polygonCollider.pathCount = 0;
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
int physicsShapes = _lastHandled.GetPhysicsShapeCount();
|
|
84
|
+
polygonCollider.pathCount = physicsShapes;
|
|
85
|
+
List<Vector2> buffer = Buffers<Vector2>.List;
|
|
86
|
+
for (int i = 0; i < physicsShapes; ++i)
|
|
87
|
+
{
|
|
88
|
+
buffer.Clear();
|
|
89
|
+
_ = _lastHandled.GetPhysicsShape(i, buffer);
|
|
90
|
+
polygonCollider.SetPath(i, buffer);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
fileFormatVersion: 2
|
|
2
|
-
guid: 90f375924f7247ab87a73467faae06b7
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 90f375924f7247ab87a73467faae06b7
|
|
3
3
|
timeCreated: 1720738383
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
namespace UnityHelpers.Utils
|
|
2
|
-
{
|
|
3
|
-
using UnityEngine;
|
|
4
|
-
|
|
5
|
-
[DisallowMultipleComponent]
|
|
6
|
-
public sealed class Oscillator : MonoBehaviour
|
|
7
|
-
{
|
|
8
|
-
public float speed = 1f;
|
|
9
|
-
public float width = 1f;
|
|
10
|
-
public float height = 1f;
|
|
11
|
-
|
|
12
|
-
private Vector3 _initialLocalPosition;
|
|
13
|
-
|
|
14
|
-
private void Awake()
|
|
15
|
-
{
|
|
16
|
-
_initialLocalPosition = transform.localPosition;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
private void Update()
|
|
20
|
-
{
|
|
21
|
-
float time = Time.time;
|
|
22
|
-
transform.localPosition =
|
|
23
|
-
_initialLocalPosition
|
|
24
|
-
+ new Vector3(Mathf.Cos(time * speed) * width, Mathf.Sin(time * speed) * height);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
1
|
+
namespace UnityHelpers.Utils
|
|
2
|
+
{
|
|
3
|
+
using UnityEngine;
|
|
4
|
+
|
|
5
|
+
[DisallowMultipleComponent]
|
|
6
|
+
public sealed class Oscillator : MonoBehaviour
|
|
7
|
+
{
|
|
8
|
+
public float speed = 1f;
|
|
9
|
+
public float width = 1f;
|
|
10
|
+
public float height = 1f;
|
|
11
|
+
|
|
12
|
+
private Vector3 _initialLocalPosition;
|
|
13
|
+
|
|
14
|
+
private void Awake()
|
|
15
|
+
{
|
|
16
|
+
_initialLocalPosition = transform.localPosition;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
private void Update()
|
|
20
|
+
{
|
|
21
|
+
float time = Time.time;
|
|
22
|
+
transform.localPosition =
|
|
23
|
+
_initialLocalPosition
|
|
24
|
+
+ new Vector3(Mathf.Cos(time * speed) * width, Mathf.Sin(time * speed) * height);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|