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.
Files changed (298) hide show
  1. package/.config/dotnet-tools.json +9 -9
  2. package/.editorconfig +184 -184
  3. package/.gitattributes +63 -63
  4. package/.github/workflows/npm-publish.yml +75 -66
  5. package/.pre-commit-config.yaml +21 -21
  6. package/Editor/AnimationCopier.cs +181 -181
  7. package/Editor/AnimationCopier.cs.meta +2 -2
  8. package/Editor/AnimationCreator.cs +253 -253
  9. package/Editor/AnimationCreator.cs.meta +11 -11
  10. package/Editor/AnimationEventEditor.cs +887 -887
  11. package/Editor/AnimatorControllerCopier.cs +162 -162
  12. package/Editor/AnimatorControllerCopier.cs.meta +2 -2
  13. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs +34 -34
  14. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs.meta +2 -2
  15. package/Editor/CustomEditors.meta +2 -2
  16. package/Editor/FitTextureSizeWizard.cs +147 -147
  17. package/Editor/FitTextureSizeWizard.cs.meta +2 -2
  18. package/Editor/PrefabCheckWizard.cs +170 -170
  19. package/Editor/PrefabCheckWizard.cs.meta +11 -11
  20. package/Editor/SpriteSettingsApplier.cs +272 -272
  21. package/Editor/SpriteSettingsApplier.cs.meta +2 -2
  22. package/Editor/StringInListeDrawer.cs +56 -56
  23. package/Editor/TextureResizerWizard.cs +181 -181
  24. package/Editor/TextureResizerWizard.cs.meta +2 -2
  25. package/Editor/TextureSettingsApplier.cs +178 -178
  26. package/Editor/TextureSettingsApplier.cs.meta +2 -2
  27. package/Editor/Utils/DxReadOnlyPropertyDrawer.cs +26 -26
  28. package/Editor/Utils/DxReadOnlyPropertyDrawer.cs.meta +11 -11
  29. package/Editor/Utils/EditorUtilities.cs +22 -22
  30. package/Editor/Utils/EditorUtilities.cs.meta +11 -11
  31. package/Editor/Utils.meta +8 -8
  32. package/Editor/WShowIfPropertyDrawer.cs +63 -63
  33. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +17 -17
  34. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -7
  35. package/LICENSE +21 -21
  36. package/LICENSE.md +6 -6
  37. package/LICENSE.meta +7 -7
  38. package/README.md +177 -177
  39. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll.meta +33 -33
  40. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml +223 -223
  41. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml.meta +7 -7
  42. package/Runtime/Binaries/System.Text.Encodings.Web.dll.meta +33 -33
  43. package/Runtime/Binaries/System.Text.Encodings.Web.xml +935 -935
  44. package/Runtime/Binaries/System.Text.Encodings.Web.xml.meta +7 -7
  45. package/Runtime/Binaries/System.Text.Json.dll.meta +33 -33
  46. package/Runtime/Binaries/System.Text.Json.xml +4829 -4829
  47. package/Runtime/Binaries/System.Text.Json.xml.meta +7 -7
  48. package/Runtime/Binaries.meta +8 -8
  49. package/Runtime/Core/Attributes/AnimationEventAttribute.cs +131 -131
  50. package/Runtime/Core/Attributes/ChildComponentAttribute.cs +213 -209
  51. package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs +6 -6
  52. package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
  53. package/Runtime/Core/Attributes/NotNullAttribute.cs +32 -32
  54. package/Runtime/Core/Attributes/ParentComponent.cs +185 -185
  55. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +14 -14
  56. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +117 -117
  57. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
  58. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +101 -101
  59. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
  60. package/Runtime/Core/Attributes/WShowIfAttribute.cs +16 -16
  61. package/Runtime/Core/Attributes.meta +8 -8
  62. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +92 -92
  63. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +185 -185
  64. package/Runtime/Core/DataStructure/Adapters/KGuid.cs +305 -305
  65. package/Runtime/Core/DataStructure/Adapters/KVector2.cs +80 -80
  66. package/Runtime/Core/DataStructure/Circle.cs +50 -50
  67. package/Runtime/Core/DataStructure/CyclicBuffer.cs +193 -153
  68. package/Runtime/Core/DataStructure/ISpatialTree.cs +60 -60
  69. package/Runtime/Core/DataStructure/ISpatialTree.cs.meta +11 -11
  70. package/Runtime/Core/DataStructure/KDTree.cs +292 -292
  71. package/Runtime/Core/DataStructure/KDTree.cs.meta +11 -11
  72. package/Runtime/Core/DataStructure/QuadTree.cs +287 -287
  73. package/Runtime/Core/DataStructure/RTree.cs +346 -346
  74. package/Runtime/Core/DataStructure/RTree.cs.meta +11 -11
  75. package/Runtime/Core/DataStructure/StringWrapper.cs +91 -91
  76. package/Runtime/Core/DataStructure/TimedCache.cs +66 -66
  77. package/Runtime/Core/Extension/AnimatorExtensions.cs +25 -25
  78. package/Runtime/Core/Extension/AsyncOperationExtensions.cs +110 -110
  79. package/Runtime/Core/Extension/CircleExtensions.cs +25 -25
  80. package/Runtime/Core/Extension/ColorExtensions.cs +629 -629
  81. package/Runtime/Core/Extension/DictionaryExtensions.cs +279 -279
  82. package/Runtime/Core/Extension/DirectionExtensions.cs +213 -213
  83. package/Runtime/Core/Extension/EnumExtensions.cs +37 -37
  84. package/Runtime/Core/Extension/EnumExtensions.cs.meta +2 -2
  85. package/Runtime/Core/Extension/HashSetExtensions.cs +12 -12
  86. package/Runtime/Core/Extension/IEnumerableExtensions.cs +122 -122
  87. package/Runtime/Core/Extension/IListExtensions.cs +146 -106
  88. package/Runtime/Core/Extension/LoggingExtensions.cs +264 -258
  89. package/Runtime/Core/Extension/RandomExtensions.cs +109 -109
  90. package/Runtime/Core/Extension/SerializedPropertyExtensions.cs +157 -157
  91. package/Runtime/Core/Extension/StringExtensions.cs +180 -151
  92. package/Runtime/Core/Extension/UnityExtensions.cs +1608 -1608
  93. package/Runtime/Core/Helper/ArrayConverter.cs +39 -39
  94. package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
  95. package/Runtime/Core/Helper/AssignUtilities.cs +14 -14
  96. package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
  97. package/Runtime/Core/Helper/DirectoryHelper.cs +132 -0
  98. package/Runtime/Core/Helper/DirectoryHelper.cs.meta +3 -0
  99. package/Runtime/Core/Helper/Enumerables.cs +17 -17
  100. package/Runtime/Core/Helper/FormattingHelpers.cs +32 -32
  101. package/Runtime/Core/Helper/Geometry.cs +43 -43
  102. package/Runtime/Core/Helper/Helpers.cs +722 -722
  103. package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
  104. package/Runtime/Core/Helper/IterationHelpers.cs +32 -32
  105. package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
  106. package/Runtime/Core/Helper/LifetimeHelpers.cs +13 -13
  107. package/Runtime/Core/Helper/Objects.cs +769 -769
  108. package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
  109. package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
  110. package/Runtime/Core/Helper/Partials/MathHelpers.cs +30 -30
  111. package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
  112. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +388 -388
  113. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
  114. package/Runtime/Core/Helper/Partials/TransformHelpers.cs +189 -189
  115. package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
  116. package/Runtime/Core/Helper/Partials.meta +2 -2
  117. package/Runtime/Core/Helper/ReflectionHelpers.cs +452 -452
  118. package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
  119. package/Runtime/Core/Helper/SceneHelper.cs +209 -209
  120. package/Runtime/Core/Helper/SpriteHelpers.cs +41 -41
  121. package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
  122. package/Runtime/Core/Helper/StringInList.cs +31 -31
  123. package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
  124. package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs +82 -82
  125. package/Runtime/Core/Helper/WallMath.cs +166 -166
  126. package/Runtime/Core/Math/Line.cs +55 -55
  127. package/Runtime/Core/Math/Parabola.cs +47 -47
  128. package/Runtime/Core/Math/PointPolygonCheck.cs +36 -36
  129. package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
  130. package/Runtime/Core/Math/Range.cs +92 -92
  131. package/Runtime/Core/Math/XXHash.cs +310 -310
  132. package/Runtime/Core/Math/XXHash.cs.meta +11 -11
  133. package/Runtime/Core/Model/Direction.cs +43 -43
  134. package/Runtime/Core/OneOf/FastOneOf.cs +152 -152
  135. package/Runtime/Core/OneOf/None.cs +4 -4
  136. package/Runtime/Core/Random/AbstractRandom.cs +585 -585
  137. package/Runtime/Core/Random/DotNetRandom.cs +54 -54
  138. package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
  139. package/Runtime/Core/Random/IRandom.cs +161 -161
  140. package/Runtime/Core/Random/LinearCongruentialGenerator.cs +49 -49
  141. package/Runtime/Core/Random/NativePcgRandom.cs +97 -97
  142. package/Runtime/Core/Random/PRNG.cs +7 -7
  143. package/Runtime/Core/Random/PRNG.cs.meta +2 -2
  144. package/Runtime/Core/Random/PcgRandom.cs +149 -149
  145. package/Runtime/Core/Random/PerlinNoise.cs +369 -369
  146. package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
  147. package/Runtime/Core/Random/RandomState.cs +131 -131
  148. package/Runtime/Core/Random/RandomUtilities.cs +26 -26
  149. package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
  150. package/Runtime/Core/Random/RomuDuo.cs +116 -116
  151. package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
  152. package/Runtime/Core/Random/SplitMix64.cs +94 -94
  153. package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
  154. package/Runtime/Core/Random/SquirrelRandom.cs +84 -84
  155. package/Runtime/Core/Random/SystemRandom.cs +162 -162
  156. package/Runtime/Core/Random/ThreadLocalRandom.cs +12 -12
  157. package/Runtime/Core/Random/UnityRandom.cs +57 -57
  158. package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
  159. package/Runtime/Core/Random/WyRandom.cs +121 -121
  160. package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
  161. package/Runtime/Core/Random/XorShiftRandom.cs +52 -52
  162. package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
  163. package/Runtime/Core/Random/XorShiroRandom.cs +119 -119
  164. package/Runtime/Core/Random/XorShiroRandom.cs.meta +2 -2
  165. package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs +88 -88
  166. package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs +37 -37
  167. package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs +218 -218
  168. package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs +28 -28
  169. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +74 -74
  170. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +81 -81
  171. package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs +88 -88
  172. package/Runtime/Core/Serialization/Serializer.cs +195 -195
  173. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +113 -113
  174. package/Runtime/Protobuf-Net/System.Buffers.dll.meta +33 -33
  175. package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
  176. package/Runtime/Protobuf-Net/System.Collections.Immutable.xml +5379 -5379
  177. package/Runtime/Protobuf-Net/System.Collections.Immutable.xml.meta +7 -7
  178. package/Runtime/Protobuf-Net/System.Numerics.Vectors.dll.meta +33 -33
  179. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
  180. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml +290 -290
  181. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml.meta +7 -7
  182. package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
  183. package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
  184. package/Runtime/UI/LayeredImage.cs +364 -364
  185. package/Runtime/UI/LayeredImage.cs.meta +2 -2
  186. package/Runtime/UI.meta +2 -2
  187. package/Runtime/Utils/AnimationEventEqualityComparer.cs +161 -161
  188. package/Runtime/Utils/AnimatorEnumStateMachine.cs +88 -88
  189. package/Runtime/Utils/Buffers.cs +33 -33
  190. package/Runtime/Utils/CenterPointOffset.cs +30 -30
  191. package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
  192. package/Runtime/Utils/CircleLineRenderer.cs +134 -134
  193. package/Runtime/Utils/CoroutineHandler.cs +4 -4
  194. package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
  195. package/Runtime/Utils/DeferredDisposalResult.cs +23 -23
  196. package/Runtime/Utils/MatchColliderToSprite.cs +94 -94
  197. package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
  198. package/Runtime/Utils/Oscillator.cs +27 -27
  199. package/Runtime/Utils/RuntimeSingleton.cs +71 -69
  200. package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
  201. package/Runtime/Utils/SetTextureImportData.cs +69 -69
  202. package/Runtime/Utils/SpriteRendererMetadata.cs +374 -374
  203. package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
  204. package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
  205. package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
  206. package/Runtime/Utils/StartTracker.cs +15 -0
  207. package/Runtime/Utils/StartTracker.cs.meta +3 -0
  208. package/Runtime/Utils/TextureScale.cs +179 -179
  209. package/Runtime/Utils/TextureScale.cs.meta +2 -2
  210. package/Runtime/Utils/UnityObjectNameComparer.cs +33 -0
  211. package/Runtime/Utils/UnityObjectNameComparer.cs.meta +3 -0
  212. package/Runtime/WallstopStudios.UnityHelpers.asmdef +13 -13
  213. package/Tests/Runtime/Attributes/ChildComponentTests.cs +81 -81
  214. package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
  215. package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
  216. package/Tests/Runtime/Attributes/ParentComponentTests.cs +68 -68
  217. package/Tests/Runtime/Components/RelationalComponentTesterComplex.cs +34 -34
  218. package/Tests/Runtime/Components/RelationalComponentTesterComplex.cs.meta +2 -2
  219. package/Tests/Runtime/Components/RelationalComponentsTesterSimple.cs +40 -40
  220. package/Tests/Runtime/Components.meta +2 -2
  221. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +14 -14
  222. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs.meta +11 -11
  223. package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +324 -324
  224. package/Tests/Runtime/DataStructures/QuadTreeTests.cs +14 -14
  225. package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +11 -11
  226. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +130 -130
  227. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +11 -11
  228. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +14 -14
  229. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs.meta +11 -11
  230. package/Tests/Runtime/DataStructures.meta +8 -8
  231. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +439 -439
  232. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
  233. package/Tests/Runtime/Extensions/EnumExtensionTests.cs +128 -128
  234. package/Tests/Runtime/Extensions/EnumExtensionTests.cs.meta +2 -2
  235. package/Tests/Runtime/Extensions/IListExtensionTests.cs +104 -104
  236. package/Tests/Runtime/Extensions/RandomExtensionTests.cs +27 -27
  237. package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
  238. package/Tests/Runtime/Extensions/StringExtensionTests.cs +31 -31
  239. package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
  240. package/Tests/Runtime/Extensions.meta +2 -2
  241. package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
  242. package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
  243. package/Tests/Runtime/Helper/FormattingHelperTests.cs +129 -129
  244. package/Tests/Runtime/Helper/FormattingHelperTests.cs.meta +2 -2
  245. package/Tests/Runtime/Helper/ObjectHelperTests.cs +402 -402
  246. package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
  247. package/Tests/Runtime/Helper/ReflectionHelperTests.cs +536 -536
  248. package/Tests/Runtime/Helper/SceneHelperTests.cs +94 -94
  249. package/Tests/Runtime/Helper/WallMathTests.cs +233 -233
  250. package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
  251. package/Tests/Runtime/Helper.meta +2 -2
  252. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +14 -14
  253. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +11 -11
  254. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +14 -14
  255. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +11 -11
  256. package/Tests/Runtime/Performance/RandomPerformanceTests.cs +180 -157
  257. package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
  258. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +61 -61
  259. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs.meta +2 -2
  260. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +154 -154
  261. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +11 -11
  262. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +14 -14
  263. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +11 -11
  264. package/Tests/Runtime/Performance.meta +8 -8
  265. package/Tests/Runtime/Random/DotNetRandomTests.cs +9 -9
  266. package/Tests/Runtime/Random/DotNetRandomTests.cs.meta +2 -2
  267. package/Tests/Runtime/Random/LinearCongruentialGeneratorTests.cs +12 -12
  268. package/Tests/Runtime/Random/PcgRandomTests.cs +9 -9
  269. package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -11
  270. package/Tests/Runtime/Random/RandomTestBase.cs +787 -787
  271. package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -11
  272. package/Tests/Runtime/Random/RomuDuoRandomTests.cs +9 -9
  273. package/Tests/Runtime/Random/RomuDuoRandomTests.cs.meta +2 -2
  274. package/Tests/Runtime/Random/SplitMix64RandomTests.cs +9 -9
  275. package/Tests/Runtime/Random/SplitMix64RandomTests.cs.meta +2 -2
  276. package/Tests/Runtime/Random/SquirrelRandomTests.cs +14 -14
  277. package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -11
  278. package/Tests/Runtime/Random/SystemRandomTests.cs +10 -10
  279. package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -11
  280. package/Tests/Runtime/Random/UnityRandomTests.cs +9 -9
  281. package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -11
  282. package/Tests/Runtime/Random/WyRandomTests.cs +9 -9
  283. package/Tests/Runtime/Random/WyRandomTests.cs.meta +2 -2
  284. package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -9
  285. package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -11
  286. package/Tests/Runtime/Random/XorShiroRandomTests.cs +9 -9
  287. package/Tests/Runtime/Random/XorShiroRandomTests.cs.meta +2 -2
  288. package/Tests/Runtime/Random.meta +8 -8
  289. package/Tests/Runtime/Serialization/JsonSerializationTest.cs +156 -156
  290. package/Tests/Runtime/Serialization/JsonSerializationTest.cs.meta +2 -2
  291. package/Tests/Runtime/Serialization.meta +2 -2
  292. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs +399 -399
  293. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs.meta +2 -2
  294. package/Tests/Runtime/Utils.meta +2 -2
  295. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +22 -22
  296. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -7
  297. package/Tests/Runtime.meta +8 -8
  298. package/package.json +38 -38
@@ -1,402 +1,402 @@
1
- namespace UnityHelpers.Tests.Helper
2
- {
3
- using System.Collections;
4
- using JetBrains.Annotations;
5
- using NUnit.Framework;
6
- using UnityEngine;
7
- using UnityEngine.TestTools;
8
- using UnityHelpers.Core.Helper;
9
-
10
- [UsedImplicitly]
11
- public sealed class ObjectHelperComponent : MonoBehaviour { }
12
-
13
- public sealed class ObjectHelperTests
14
- {
15
- [UnityTest]
16
- public IEnumerator HasComponent()
17
- {
18
- GameObject go = new("Test SpriteRenderer", typeof(SpriteRenderer));
19
- SpriteRenderer spriteRenderer = go.GetComponent<SpriteRenderer>();
20
-
21
- Assert.IsTrue(go.HasComponent(typeof(SpriteRenderer)));
22
- Assert.IsTrue(go.HasComponent<SpriteRenderer>());
23
- Assert.IsTrue(spriteRenderer.HasComponent<SpriteRenderer>());
24
- Assert.IsTrue(spriteRenderer.HasComponent(typeof(SpriteRenderer)));
25
-
26
- Assert.IsFalse(go.HasComponent<LineRenderer>());
27
- Assert.IsFalse(go.HasComponent(typeof(LineRenderer)));
28
- Assert.IsFalse(spriteRenderer.HasComponent<LineRenderer>());
29
- Assert.IsFalse(spriteRenderer.HasComponent(typeof(LineRenderer)));
30
-
31
- Object obj = go;
32
- Assert.IsTrue(obj.HasComponent<SpriteRenderer>());
33
- Assert.IsTrue(obj.HasComponent(typeof(SpriteRenderer)));
34
- Assert.IsFalse(obj.HasComponent<LineRenderer>());
35
- Assert.IsFalse(obj.HasComponent(typeof(LineRenderer)));
36
-
37
- yield break;
38
- }
39
-
40
- [UnityTest]
41
- public IEnumerator EnableRendererRecursively()
42
- {
43
- GameObject one = New("1");
44
- GameObject two = New("2");
45
- two.transform.SetParent(one.transform);
46
- GameObject three = New("3");
47
- three.transform.SetParent(two.transform);
48
- GameObject four = New("4");
49
- four.transform.SetParent(three.transform);
50
-
51
- // Act
52
- two.transform.EnableRendererRecursively<SpriteRenderer>(false);
53
- Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
54
- Assert.IsFalse(two.GetComponent<SpriteRenderer>().enabled);
55
- Assert.IsFalse(three.GetComponent<SpriteRenderer>().enabled);
56
- Assert.IsFalse(four.GetComponent<SpriteRenderer>().enabled);
57
-
58
- Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
59
- Assert.IsTrue(two.GetComponent<CircleCollider2D>().enabled);
60
- Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
61
- Assert.IsTrue(four.GetComponent<CircleCollider2D>().enabled);
62
-
63
- // Act
64
- three.transform.EnableRendererRecursively<SpriteRenderer>(true);
65
-
66
- Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
67
- Assert.IsFalse(two.GetComponent<SpriteRenderer>().enabled);
68
- Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
69
- Assert.IsTrue(four.GetComponent<SpriteRenderer>().enabled);
70
-
71
- Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
72
- Assert.IsTrue(two.GetComponent<CircleCollider2D>().enabled);
73
- Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
74
- Assert.IsTrue(four.GetComponent<CircleCollider2D>().enabled);
75
-
76
- // Act
77
- one.transform.EnableRendererRecursively<SpriteRenderer>(true);
78
-
79
- Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
80
- Assert.IsTrue(two.GetComponent<SpriteRenderer>().enabled);
81
- Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
82
- Assert.IsTrue(four.GetComponent<SpriteRenderer>().enabled);
83
-
84
- Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
85
- Assert.IsTrue(two.GetComponent<CircleCollider2D>().enabled);
86
- Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
87
- Assert.IsTrue(four.GetComponent<CircleCollider2D>().enabled);
88
-
89
- // Act
90
- two.transform.EnableRendererRecursively<SpriteRenderer>(
91
- false,
92
- renderer => renderer.gameObject == three
93
- );
94
-
95
- Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
96
- Assert.IsFalse(two.GetComponent<SpriteRenderer>().enabled);
97
- Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
98
- Assert.IsFalse(four.GetComponent<SpriteRenderer>().enabled);
99
-
100
- Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
101
- Assert.IsTrue(two.GetComponent<CircleCollider2D>().enabled);
102
- Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
103
- Assert.IsTrue(four.GetComponent<CircleCollider2D>().enabled);
104
-
105
- // Act
106
- one.transform.EnableRendererRecursively<SpriteRenderer>(
107
- true,
108
- renderer => renderer.gameObject == four
109
- );
110
-
111
- Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
112
- Assert.IsTrue(two.GetComponent<SpriteRenderer>().enabled);
113
- Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
114
- Assert.IsFalse(four.GetComponent<SpriteRenderer>().enabled);
115
-
116
- Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
117
- Assert.IsTrue(two.GetComponent<CircleCollider2D>().enabled);
118
- Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
119
- Assert.IsTrue(four.GetComponent<CircleCollider2D>().enabled);
120
-
121
- yield break;
122
-
123
- GameObject New(string name)
124
- {
125
- return new GameObject(name, typeof(SpriteRenderer), typeof(CircleCollider2D));
126
- }
127
- }
128
-
129
- [UnityTest]
130
- public IEnumerator EnableRecursively()
131
- {
132
- GameObject one = New("1");
133
- GameObject two = New("2");
134
- two.transform.SetParent(one.transform);
135
- GameObject three = New("3");
136
- three.transform.SetParent(two.transform);
137
- GameObject four = New("4");
138
- four.transform.SetParent(three.transform);
139
-
140
- // Act
141
- two.transform.EnableRecursively<CircleCollider2D>(false);
142
- Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
143
- Assert.IsTrue(two.GetComponent<SpriteRenderer>().enabled);
144
- Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
145
- Assert.IsTrue(four.GetComponent<SpriteRenderer>().enabled);
146
-
147
- Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
148
- Assert.IsFalse(two.GetComponent<CircleCollider2D>().enabled);
149
- Assert.IsFalse(three.GetComponent<CircleCollider2D>().enabled);
150
- Assert.IsFalse(four.GetComponent<CircleCollider2D>().enabled);
151
-
152
- // Act
153
- three.transform.EnableRecursively<CircleCollider2D>(true);
154
-
155
- Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
156
- Assert.IsTrue(two.GetComponent<SpriteRenderer>().enabled);
157
- Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
158
- Assert.IsTrue(four.GetComponent<SpriteRenderer>().enabled);
159
-
160
- Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
161
- Assert.IsFalse(two.GetComponent<CircleCollider2D>().enabled);
162
- Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
163
- Assert.IsTrue(four.GetComponent<CircleCollider2D>().enabled);
164
-
165
- // Act
166
- one.transform.EnableRecursively<CircleCollider2D>(true);
167
-
168
- Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
169
- Assert.IsTrue(two.GetComponent<SpriteRenderer>().enabled);
170
- Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
171
- Assert.IsTrue(four.GetComponent<SpriteRenderer>().enabled);
172
-
173
- Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
174
- Assert.IsTrue(two.GetComponent<CircleCollider2D>().enabled);
175
- Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
176
- Assert.IsTrue(four.GetComponent<CircleCollider2D>().enabled);
177
-
178
- // Act
179
- two.transform.EnableRecursively<CircleCollider2D>(
180
- false,
181
- collider => collider.gameObject == three
182
- );
183
-
184
- Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
185
- Assert.IsTrue(two.GetComponent<SpriteRenderer>().enabled);
186
- Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
187
- Assert.IsTrue(four.GetComponent<SpriteRenderer>().enabled);
188
-
189
- Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
190
- Assert.IsFalse(two.GetComponent<CircleCollider2D>().enabled);
191
- Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
192
- Assert.IsFalse(four.GetComponent<CircleCollider2D>().enabled);
193
-
194
- // Act
195
- one.transform.EnableRecursively<CircleCollider2D>(
196
- true,
197
- collider => collider.gameObject == four
198
- );
199
-
200
- Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
201
- Assert.IsTrue(two.GetComponent<SpriteRenderer>().enabled);
202
- Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
203
- Assert.IsTrue(four.GetComponent<SpriteRenderer>().enabled);
204
-
205
- Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
206
- Assert.IsTrue(two.GetComponent<CircleCollider2D>().enabled);
207
- Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
208
- Assert.IsFalse(four.GetComponent<CircleCollider2D>().enabled);
209
-
210
- yield break;
211
-
212
- GameObject New(string name)
213
- {
214
- return new GameObject(name, typeof(SpriteRenderer), typeof(CircleCollider2D));
215
- }
216
- }
217
-
218
- [UnityTest]
219
- public IEnumerator DestroyAllChildGameObjects()
220
- {
221
- GameObject one = new("1");
222
- GameObject two = new("2");
223
- two.transform.SetParent(one.transform);
224
- GameObject three = new("3");
225
- three.transform.SetParent(two.transform);
226
- GameObject four = new("4");
227
- four.transform.SetParent(three.transform);
228
-
229
- // Act
230
- two.DestroyAllChildrenGameObjects();
231
- yield return null;
232
-
233
- Assert.IsTrue(one != null);
234
- Assert.IsTrue(two != null);
235
- Assert.IsTrue(three == null);
236
- Assert.IsTrue(four == null);
237
-
238
- three = new GameObject("3");
239
- three.transform.SetParent(two.transform);
240
- four = new GameObject("4");
241
- four.transform.SetParent(three.transform);
242
-
243
- // Act
244
- one.DestroyAllChildrenGameObjects();
245
- yield return null;
246
-
247
- Assert.IsTrue(one != null);
248
- Assert.IsTrue(two == null);
249
- Assert.IsTrue(three == null);
250
- Assert.IsTrue(four == null);
251
- }
252
-
253
- [UnityTest]
254
- public IEnumerator DestroyAllComponentsOfType()
255
- {
256
- GameObject one = New("1");
257
- Assert.AreEqual(4, one.GetComponents<ObjectHelperComponent>().Length);
258
-
259
- GameObject two = New("2");
260
- two.transform.SetParent(one.transform);
261
-
262
- one.DestroyAllComponentsOfType<ObjectHelperComponent>();
263
- yield return null;
264
- Assert.AreEqual(0, one.GetComponents<ObjectHelperComponent>().Length);
265
- Assert.IsTrue(one.GetComponent<SpriteRenderer>() != null);
266
- Assert.AreEqual(4, two.GetComponents<ObjectHelperComponent>().Length);
267
-
268
- two.DestroyAllComponentsOfType<ObjectHelperComponent>();
269
- yield return null;
270
- Assert.AreEqual(0, one.GetComponents<ObjectHelperComponent>().Length);
271
- Assert.IsTrue(one.GetComponent<SpriteRenderer>() != null);
272
- Assert.AreEqual(0, two.GetComponents<ObjectHelperComponent>().Length);
273
- Assert.IsTrue(two.GetComponent<SpriteRenderer>() != null);
274
-
275
- GameObject New(string name)
276
- {
277
- return new GameObject(
278
- name,
279
- typeof(SpriteRenderer),
280
- typeof(ObjectHelperComponent),
281
- typeof(ObjectHelperComponent),
282
- typeof(ObjectHelperComponent),
283
- typeof(ObjectHelperComponent)
284
- );
285
- }
286
- }
287
-
288
- [UnityTest]
289
- public IEnumerator SmartDestroy()
290
- {
291
- GameObject one = new("1");
292
-
293
- one.SmartDestroy();
294
- yield return null;
295
- Assert.IsTrue(one == null);
296
-
297
- GameObject two = new("2");
298
- two.SmartDestroy(1.5f);
299
- yield return null;
300
- Assert.IsTrue(two != null);
301
- yield return new WaitForSeconds(1.6f);
302
-
303
- Assert.IsTrue(two == null);
304
- }
305
-
306
- [UnityTest]
307
- public IEnumerator DestroyAllChildrenGameObjectsImmediatelyConditionally()
308
- {
309
- GameObject one = new("1");
310
- GameObject two = new("2");
311
- two.transform.SetParent(one.transform);
312
- GameObject three = new("3");
313
- three.transform.SetParent(two.transform);
314
- GameObject four = new("4");
315
- four.transform.SetParent(two.transform);
316
-
317
- two.DestroyAllChildrenGameObjectsImmediatelyConditionally(go => go == four);
318
- Assert.IsTrue(one != null);
319
- Assert.IsTrue(two != null);
320
- Assert.IsTrue(three != null);
321
- Assert.IsTrue(four == null);
322
-
323
- one.DestroyAllChildrenGameObjectsImmediatelyConditionally(go => go != two);
324
- Assert.IsTrue(one != null);
325
- Assert.IsTrue(two != null);
326
- Assert.IsTrue(three != null);
327
- Assert.IsTrue(four == null);
328
-
329
- one.DestroyAllChildrenGameObjectsImmediatelyConditionally(go => go == two);
330
- Assert.IsTrue(one != null);
331
- Assert.IsTrue(two == null);
332
- Assert.IsTrue(three == null);
333
- Assert.IsTrue(four == null);
334
-
335
- yield break;
336
- }
337
-
338
- [UnityTest]
339
- public IEnumerator DestroyAllChildGameObjectsConditionally()
340
- {
341
- GameObject one = new("1");
342
- GameObject two = new("2");
343
- two.transform.SetParent(one.transform);
344
- GameObject three = new("3");
345
- three.transform.SetParent(two.transform);
346
- GameObject four = new("4");
347
- four.transform.SetParent(two.transform);
348
-
349
- two.DestroyAllChildGameObjectsConditionally(go => go == four);
350
- yield return null;
351
- Assert.IsTrue(one != null);
352
- Assert.IsTrue(two != null);
353
- Assert.IsTrue(three != null);
354
- Assert.IsTrue(four == null);
355
-
356
- one.DestroyAllChildGameObjectsConditionally(go => go != two);
357
- yield return null;
358
- Assert.IsTrue(one != null);
359
- Assert.IsTrue(two != null);
360
- Assert.IsTrue(three != null);
361
- Assert.IsTrue(four == null);
362
-
363
- one.DestroyAllChildGameObjectsConditionally(go => go == two);
364
- yield return null;
365
- Assert.IsTrue(one != null);
366
- Assert.IsTrue(two == null);
367
- Assert.IsTrue(three == null);
368
- Assert.IsTrue(four == null);
369
- }
370
-
371
- [UnityTest]
372
- public IEnumerator DestroyAllChildrenGameObjectsImmediately()
373
- {
374
- GameObject one = new("1");
375
- GameObject two = new("2");
376
- two.transform.SetParent(one.transform);
377
- GameObject three = new("3");
378
- three.transform.SetParent(two.transform);
379
- GameObject four = new("4");
380
- four.transform.SetParent(two.transform);
381
-
382
- two.DestroyAllChildrenGameObjectsImmediately();
383
- Assert.IsTrue(one != null);
384
- Assert.IsTrue(two != null);
385
- Assert.IsTrue(three == null);
386
- Assert.IsTrue(four == null);
387
-
388
- three = new GameObject("3");
389
- three.transform.SetParent(two.transform);
390
- four = new("4");
391
- four.transform.SetParent(two.transform);
392
-
393
- one.DestroyAllChildrenGameObjectsImmediately();
394
- Assert.IsTrue(one != null);
395
- Assert.IsTrue(two == null);
396
- Assert.IsTrue(three == null);
397
- Assert.IsTrue(four == null);
398
-
399
- yield break;
400
- }
401
- }
402
- }
1
+ namespace UnityHelpers.Tests.Helper
2
+ {
3
+ using System.Collections;
4
+ using JetBrains.Annotations;
5
+ using NUnit.Framework;
6
+ using UnityEngine;
7
+ using UnityEngine.TestTools;
8
+ using UnityHelpers.Core.Helper;
9
+
10
+ [UsedImplicitly]
11
+ public sealed class ObjectHelperComponent : MonoBehaviour { }
12
+
13
+ public sealed class ObjectHelperTests
14
+ {
15
+ [UnityTest]
16
+ public IEnumerator HasComponent()
17
+ {
18
+ GameObject go = new("Test SpriteRenderer", typeof(SpriteRenderer));
19
+ SpriteRenderer spriteRenderer = go.GetComponent<SpriteRenderer>();
20
+
21
+ Assert.IsTrue(go.HasComponent(typeof(SpriteRenderer)));
22
+ Assert.IsTrue(go.HasComponent<SpriteRenderer>());
23
+ Assert.IsTrue(spriteRenderer.HasComponent<SpriteRenderer>());
24
+ Assert.IsTrue(spriteRenderer.HasComponent(typeof(SpriteRenderer)));
25
+
26
+ Assert.IsFalse(go.HasComponent<LineRenderer>());
27
+ Assert.IsFalse(go.HasComponent(typeof(LineRenderer)));
28
+ Assert.IsFalse(spriteRenderer.HasComponent<LineRenderer>());
29
+ Assert.IsFalse(spriteRenderer.HasComponent(typeof(LineRenderer)));
30
+
31
+ Object obj = go;
32
+ Assert.IsTrue(obj.HasComponent<SpriteRenderer>());
33
+ Assert.IsTrue(obj.HasComponent(typeof(SpriteRenderer)));
34
+ Assert.IsFalse(obj.HasComponent<LineRenderer>());
35
+ Assert.IsFalse(obj.HasComponent(typeof(LineRenderer)));
36
+
37
+ yield break;
38
+ }
39
+
40
+ [UnityTest]
41
+ public IEnumerator EnableRendererRecursively()
42
+ {
43
+ GameObject one = New("1");
44
+ GameObject two = New("2");
45
+ two.transform.SetParent(one.transform);
46
+ GameObject three = New("3");
47
+ three.transform.SetParent(two.transform);
48
+ GameObject four = New("4");
49
+ four.transform.SetParent(three.transform);
50
+
51
+ // Act
52
+ two.transform.EnableRendererRecursively<SpriteRenderer>(false);
53
+ Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
54
+ Assert.IsFalse(two.GetComponent<SpriteRenderer>().enabled);
55
+ Assert.IsFalse(three.GetComponent<SpriteRenderer>().enabled);
56
+ Assert.IsFalse(four.GetComponent<SpriteRenderer>().enabled);
57
+
58
+ Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
59
+ Assert.IsTrue(two.GetComponent<CircleCollider2D>().enabled);
60
+ Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
61
+ Assert.IsTrue(four.GetComponent<CircleCollider2D>().enabled);
62
+
63
+ // Act
64
+ three.transform.EnableRendererRecursively<SpriteRenderer>(true);
65
+
66
+ Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
67
+ Assert.IsFalse(two.GetComponent<SpriteRenderer>().enabled);
68
+ Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
69
+ Assert.IsTrue(four.GetComponent<SpriteRenderer>().enabled);
70
+
71
+ Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
72
+ Assert.IsTrue(two.GetComponent<CircleCollider2D>().enabled);
73
+ Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
74
+ Assert.IsTrue(four.GetComponent<CircleCollider2D>().enabled);
75
+
76
+ // Act
77
+ one.transform.EnableRendererRecursively<SpriteRenderer>(true);
78
+
79
+ Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
80
+ Assert.IsTrue(two.GetComponent<SpriteRenderer>().enabled);
81
+ Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
82
+ Assert.IsTrue(four.GetComponent<SpriteRenderer>().enabled);
83
+
84
+ Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
85
+ Assert.IsTrue(two.GetComponent<CircleCollider2D>().enabled);
86
+ Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
87
+ Assert.IsTrue(four.GetComponent<CircleCollider2D>().enabled);
88
+
89
+ // Act
90
+ two.transform.EnableRendererRecursively<SpriteRenderer>(
91
+ false,
92
+ renderer => renderer.gameObject == three
93
+ );
94
+
95
+ Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
96
+ Assert.IsFalse(two.GetComponent<SpriteRenderer>().enabled);
97
+ Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
98
+ Assert.IsFalse(four.GetComponent<SpriteRenderer>().enabled);
99
+
100
+ Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
101
+ Assert.IsTrue(two.GetComponent<CircleCollider2D>().enabled);
102
+ Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
103
+ Assert.IsTrue(four.GetComponent<CircleCollider2D>().enabled);
104
+
105
+ // Act
106
+ one.transform.EnableRendererRecursively<SpriteRenderer>(
107
+ true,
108
+ renderer => renderer.gameObject == four
109
+ );
110
+
111
+ Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
112
+ Assert.IsTrue(two.GetComponent<SpriteRenderer>().enabled);
113
+ Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
114
+ Assert.IsFalse(four.GetComponent<SpriteRenderer>().enabled);
115
+
116
+ Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
117
+ Assert.IsTrue(two.GetComponent<CircleCollider2D>().enabled);
118
+ Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
119
+ Assert.IsTrue(four.GetComponent<CircleCollider2D>().enabled);
120
+
121
+ yield break;
122
+
123
+ GameObject New(string name)
124
+ {
125
+ return new GameObject(name, typeof(SpriteRenderer), typeof(CircleCollider2D));
126
+ }
127
+ }
128
+
129
+ [UnityTest]
130
+ public IEnumerator EnableRecursively()
131
+ {
132
+ GameObject one = New("1");
133
+ GameObject two = New("2");
134
+ two.transform.SetParent(one.transform);
135
+ GameObject three = New("3");
136
+ three.transform.SetParent(two.transform);
137
+ GameObject four = New("4");
138
+ four.transform.SetParent(three.transform);
139
+
140
+ // Act
141
+ two.transform.EnableRecursively<CircleCollider2D>(false);
142
+ Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
143
+ Assert.IsTrue(two.GetComponent<SpriteRenderer>().enabled);
144
+ Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
145
+ Assert.IsTrue(four.GetComponent<SpriteRenderer>().enabled);
146
+
147
+ Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
148
+ Assert.IsFalse(two.GetComponent<CircleCollider2D>().enabled);
149
+ Assert.IsFalse(three.GetComponent<CircleCollider2D>().enabled);
150
+ Assert.IsFalse(four.GetComponent<CircleCollider2D>().enabled);
151
+
152
+ // Act
153
+ three.transform.EnableRecursively<CircleCollider2D>(true);
154
+
155
+ Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
156
+ Assert.IsTrue(two.GetComponent<SpriteRenderer>().enabled);
157
+ Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
158
+ Assert.IsTrue(four.GetComponent<SpriteRenderer>().enabled);
159
+
160
+ Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
161
+ Assert.IsFalse(two.GetComponent<CircleCollider2D>().enabled);
162
+ Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
163
+ Assert.IsTrue(four.GetComponent<CircleCollider2D>().enabled);
164
+
165
+ // Act
166
+ one.transform.EnableRecursively<CircleCollider2D>(true);
167
+
168
+ Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
169
+ Assert.IsTrue(two.GetComponent<SpriteRenderer>().enabled);
170
+ Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
171
+ Assert.IsTrue(four.GetComponent<SpriteRenderer>().enabled);
172
+
173
+ Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
174
+ Assert.IsTrue(two.GetComponent<CircleCollider2D>().enabled);
175
+ Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
176
+ Assert.IsTrue(four.GetComponent<CircleCollider2D>().enabled);
177
+
178
+ // Act
179
+ two.transform.EnableRecursively<CircleCollider2D>(
180
+ false,
181
+ collider => collider.gameObject == three
182
+ );
183
+
184
+ Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
185
+ Assert.IsTrue(two.GetComponent<SpriteRenderer>().enabled);
186
+ Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
187
+ Assert.IsTrue(four.GetComponent<SpriteRenderer>().enabled);
188
+
189
+ Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
190
+ Assert.IsFalse(two.GetComponent<CircleCollider2D>().enabled);
191
+ Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
192
+ Assert.IsFalse(four.GetComponent<CircleCollider2D>().enabled);
193
+
194
+ // Act
195
+ one.transform.EnableRecursively<CircleCollider2D>(
196
+ true,
197
+ collider => collider.gameObject == four
198
+ );
199
+
200
+ Assert.IsTrue(one.GetComponent<SpriteRenderer>().enabled);
201
+ Assert.IsTrue(two.GetComponent<SpriteRenderer>().enabled);
202
+ Assert.IsTrue(three.GetComponent<SpriteRenderer>().enabled);
203
+ Assert.IsTrue(four.GetComponent<SpriteRenderer>().enabled);
204
+
205
+ Assert.IsTrue(one.GetComponent<CircleCollider2D>().enabled);
206
+ Assert.IsTrue(two.GetComponent<CircleCollider2D>().enabled);
207
+ Assert.IsTrue(three.GetComponent<CircleCollider2D>().enabled);
208
+ Assert.IsFalse(four.GetComponent<CircleCollider2D>().enabled);
209
+
210
+ yield break;
211
+
212
+ GameObject New(string name)
213
+ {
214
+ return new GameObject(name, typeof(SpriteRenderer), typeof(CircleCollider2D));
215
+ }
216
+ }
217
+
218
+ [UnityTest]
219
+ public IEnumerator DestroyAllChildGameObjects()
220
+ {
221
+ GameObject one = new("1");
222
+ GameObject two = new("2");
223
+ two.transform.SetParent(one.transform);
224
+ GameObject three = new("3");
225
+ three.transform.SetParent(two.transform);
226
+ GameObject four = new("4");
227
+ four.transform.SetParent(three.transform);
228
+
229
+ // Act
230
+ two.DestroyAllChildrenGameObjects();
231
+ yield return null;
232
+
233
+ Assert.IsTrue(one != null);
234
+ Assert.IsTrue(two != null);
235
+ Assert.IsTrue(three == null);
236
+ Assert.IsTrue(four == null);
237
+
238
+ three = new GameObject("3");
239
+ three.transform.SetParent(two.transform);
240
+ four = new GameObject("4");
241
+ four.transform.SetParent(three.transform);
242
+
243
+ // Act
244
+ one.DestroyAllChildrenGameObjects();
245
+ yield return null;
246
+
247
+ Assert.IsTrue(one != null);
248
+ Assert.IsTrue(two == null);
249
+ Assert.IsTrue(three == null);
250
+ Assert.IsTrue(four == null);
251
+ }
252
+
253
+ [UnityTest]
254
+ public IEnumerator DestroyAllComponentsOfType()
255
+ {
256
+ GameObject one = New("1");
257
+ Assert.AreEqual(4, one.GetComponents<ObjectHelperComponent>().Length);
258
+
259
+ GameObject two = New("2");
260
+ two.transform.SetParent(one.transform);
261
+
262
+ one.DestroyAllComponentsOfType<ObjectHelperComponent>();
263
+ yield return null;
264
+ Assert.AreEqual(0, one.GetComponents<ObjectHelperComponent>().Length);
265
+ Assert.IsTrue(one.GetComponent<SpriteRenderer>() != null);
266
+ Assert.AreEqual(4, two.GetComponents<ObjectHelperComponent>().Length);
267
+
268
+ two.DestroyAllComponentsOfType<ObjectHelperComponent>();
269
+ yield return null;
270
+ Assert.AreEqual(0, one.GetComponents<ObjectHelperComponent>().Length);
271
+ Assert.IsTrue(one.GetComponent<SpriteRenderer>() != null);
272
+ Assert.AreEqual(0, two.GetComponents<ObjectHelperComponent>().Length);
273
+ Assert.IsTrue(two.GetComponent<SpriteRenderer>() != null);
274
+
275
+ GameObject New(string name)
276
+ {
277
+ return new GameObject(
278
+ name,
279
+ typeof(SpriteRenderer),
280
+ typeof(ObjectHelperComponent),
281
+ typeof(ObjectHelperComponent),
282
+ typeof(ObjectHelperComponent),
283
+ typeof(ObjectHelperComponent)
284
+ );
285
+ }
286
+ }
287
+
288
+ [UnityTest]
289
+ public IEnumerator SmartDestroy()
290
+ {
291
+ GameObject one = new("1");
292
+
293
+ one.SmartDestroy();
294
+ yield return null;
295
+ Assert.IsTrue(one == null);
296
+
297
+ GameObject two = new("2");
298
+ two.SmartDestroy(1.5f);
299
+ yield return null;
300
+ Assert.IsTrue(two != null);
301
+ yield return new WaitForSeconds(1.6f);
302
+
303
+ Assert.IsTrue(two == null);
304
+ }
305
+
306
+ [UnityTest]
307
+ public IEnumerator DestroyAllChildrenGameObjectsImmediatelyConditionally()
308
+ {
309
+ GameObject one = new("1");
310
+ GameObject two = new("2");
311
+ two.transform.SetParent(one.transform);
312
+ GameObject three = new("3");
313
+ three.transform.SetParent(two.transform);
314
+ GameObject four = new("4");
315
+ four.transform.SetParent(two.transform);
316
+
317
+ two.DestroyAllChildrenGameObjectsImmediatelyConditionally(go => go == four);
318
+ Assert.IsTrue(one != null);
319
+ Assert.IsTrue(two != null);
320
+ Assert.IsTrue(three != null);
321
+ Assert.IsTrue(four == null);
322
+
323
+ one.DestroyAllChildrenGameObjectsImmediatelyConditionally(go => go != two);
324
+ Assert.IsTrue(one != null);
325
+ Assert.IsTrue(two != null);
326
+ Assert.IsTrue(three != null);
327
+ Assert.IsTrue(four == null);
328
+
329
+ one.DestroyAllChildrenGameObjectsImmediatelyConditionally(go => go == two);
330
+ Assert.IsTrue(one != null);
331
+ Assert.IsTrue(two == null);
332
+ Assert.IsTrue(three == null);
333
+ Assert.IsTrue(four == null);
334
+
335
+ yield break;
336
+ }
337
+
338
+ [UnityTest]
339
+ public IEnumerator DestroyAllChildGameObjectsConditionally()
340
+ {
341
+ GameObject one = new("1");
342
+ GameObject two = new("2");
343
+ two.transform.SetParent(one.transform);
344
+ GameObject three = new("3");
345
+ three.transform.SetParent(two.transform);
346
+ GameObject four = new("4");
347
+ four.transform.SetParent(two.transform);
348
+
349
+ two.DestroyAllChildGameObjectsConditionally(go => go == four);
350
+ yield return null;
351
+ Assert.IsTrue(one != null);
352
+ Assert.IsTrue(two != null);
353
+ Assert.IsTrue(three != null);
354
+ Assert.IsTrue(four == null);
355
+
356
+ one.DestroyAllChildGameObjectsConditionally(go => go != two);
357
+ yield return null;
358
+ Assert.IsTrue(one != null);
359
+ Assert.IsTrue(two != null);
360
+ Assert.IsTrue(three != null);
361
+ Assert.IsTrue(four == null);
362
+
363
+ one.DestroyAllChildGameObjectsConditionally(go => go == two);
364
+ yield return null;
365
+ Assert.IsTrue(one != null);
366
+ Assert.IsTrue(two == null);
367
+ Assert.IsTrue(three == null);
368
+ Assert.IsTrue(four == null);
369
+ }
370
+
371
+ [UnityTest]
372
+ public IEnumerator DestroyAllChildrenGameObjectsImmediately()
373
+ {
374
+ GameObject one = new("1");
375
+ GameObject two = new("2");
376
+ two.transform.SetParent(one.transform);
377
+ GameObject three = new("3");
378
+ three.transform.SetParent(two.transform);
379
+ GameObject four = new("4");
380
+ four.transform.SetParent(two.transform);
381
+
382
+ two.DestroyAllChildrenGameObjectsImmediately();
383
+ Assert.IsTrue(one != null);
384
+ Assert.IsTrue(two != null);
385
+ Assert.IsTrue(three == null);
386
+ Assert.IsTrue(four == null);
387
+
388
+ three = new GameObject("3");
389
+ three.transform.SetParent(two.transform);
390
+ four = new("4");
391
+ four.transform.SetParent(two.transform);
392
+
393
+ one.DestroyAllChildrenGameObjectsImmediately();
394
+ Assert.IsTrue(one != null);
395
+ Assert.IsTrue(two == null);
396
+ Assert.IsTrue(three == null);
397
+ Assert.IsTrue(four == null);
398
+
399
+ yield break;
400
+ }
401
+ }
402
+ }