com.wallstop-studios.unity-helpers 2.0.0-rc26 → 2.0.0-rc30

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 (266) hide show
  1. package/.gitattributes +63 -63
  2. package/.github/workflows/npm-publish.yml +60 -0
  3. package/.github/workflows/unity-package.yml +87 -0
  4. package/Editor/AnimationCopier.cs +158 -158
  5. package/Editor/AnimationCopier.cs.meta +2 -2
  6. package/Editor/AnimationCreator.cs +262 -262
  7. package/Editor/AnimationCreator.cs.meta +11 -11
  8. package/Editor/AnimationEventEditor.cs +887 -887
  9. package/Editor/AnimatorControllerCopier.cs +162 -162
  10. package/Editor/AnimatorControllerCopier.cs.meta +2 -2
  11. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs +34 -34
  12. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs.meta +2 -2
  13. package/Editor/CustomEditors.meta +2 -2
  14. package/Editor/EnsureTextureSizeWizard.cs +110 -110
  15. package/Editor/EnsureTextureSizeWizard.cs.meta +2 -2
  16. package/Editor/PrefabCheckWizard.cs +165 -165
  17. package/Editor/PrefabCheckWizard.cs.meta +11 -11
  18. package/Editor/SpriteSettingsApplier.cs +168 -168
  19. package/Editor/SpriteSettingsApplier.cs.meta +2 -2
  20. package/Editor/StringInListeDrawer.cs +56 -56
  21. package/Editor/TextureResizerWizard.cs +181 -181
  22. package/Editor/TextureResizerWizard.cs.meta +2 -2
  23. package/Editor/TextureSettingsApplier.cs +171 -171
  24. package/Editor/TextureSettingsApplier.cs.meta +2 -2
  25. package/Editor/Utils/EditorUtilities.cs +22 -22
  26. package/Editor/Utils/EditorUtilities.cs.meta +11 -11
  27. package/Editor/Utils/ReadOnlyPropertyDrawer.cs +26 -26
  28. package/Editor/Utils/ReadOnlyPropertyDrawer.cs.meta +11 -11
  29. package/Editor/Utils.meta +8 -8
  30. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +17 -17
  31. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -7
  32. package/LICENSE +21 -21
  33. package/LICENSE.md +6 -6
  34. package/LICENSE.meta +7 -7
  35. package/README.md +117 -99
  36. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll.meta +33 -33
  37. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml +223 -223
  38. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml.meta +7 -7
  39. package/Runtime/Binaries/System.Text.Encodings.Web.dll.meta +33 -33
  40. package/Runtime/Binaries/System.Text.Encodings.Web.xml +935 -935
  41. package/Runtime/Binaries/System.Text.Encodings.Web.xml.meta +7 -7
  42. package/Runtime/Binaries/System.Text.Json.dll.meta +33 -33
  43. package/Runtime/Binaries/System.Text.Json.xml +4829 -4829
  44. package/Runtime/Binaries/System.Text.Json.xml.meta +7 -7
  45. package/Runtime/Binaries.meta +8 -8
  46. package/Runtime/Core/Attributes/AnimationEventAttribute.cs +131 -131
  47. package/Runtime/Core/Attributes/ChildComponentAttribute.cs +189 -183
  48. package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
  49. package/Runtime/Core/Attributes/NotNullAttribute.cs +32 -32
  50. package/Runtime/Core/Attributes/ParentComponent.cs +184 -178
  51. package/Runtime/Core/Attributes/ReadOnlyAttribute.cs +6 -6
  52. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +14 -14
  53. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +119 -111
  54. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
  55. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +101 -101
  56. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
  57. package/Runtime/Core/Attributes.meta +8 -8
  58. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +92 -92
  59. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +185 -185
  60. package/Runtime/Core/DataStructure/Adapters/KGuid.cs +305 -305
  61. package/Runtime/Core/DataStructure/Adapters/KVector2.cs +80 -80
  62. package/Runtime/Core/DataStructure/Circle.cs +50 -50
  63. package/Runtime/Core/DataStructure/CyclicBuffer.cs +155 -155
  64. package/Runtime/Core/DataStructure/ISpatialTree.cs +60 -60
  65. package/Runtime/Core/DataStructure/ISpatialTree.cs.meta +11 -11
  66. package/Runtime/Core/DataStructure/KDTree.cs +290 -290
  67. package/Runtime/Core/DataStructure/KDTree.cs.meta +11 -11
  68. package/Runtime/Core/DataStructure/QuadTree.cs +279 -279
  69. package/Runtime/Core/DataStructure/RTree.cs +336 -336
  70. package/Runtime/Core/DataStructure/RTree.cs.meta +11 -11
  71. package/Runtime/Core/DataStructure/StringWrapper.cs +91 -91
  72. package/Runtime/Core/DataStructure/TimedCache.cs +51 -51
  73. package/Runtime/Core/Extension/AnimatorExtensions.cs +25 -25
  74. package/Runtime/Core/Extension/CircleExtensions.cs +25 -25
  75. package/Runtime/Core/Extension/ColorExtensions.cs +338 -338
  76. package/Runtime/Core/Extension/DictionaryExtensions.cs +251 -251
  77. package/Runtime/Core/Extension/DirectionExtensions.cs +213 -213
  78. package/Runtime/Core/Extension/HashSetExtensions.cs +12 -12
  79. package/Runtime/Core/Extension/IEnumerableExtensions.cs +122 -122
  80. package/Runtime/Core/Extension/IListExtensions.cs +89 -89
  81. package/Runtime/Core/Extension/LoggingExtensions.cs +258 -258
  82. package/Runtime/Core/Extension/RandomExtensions.cs +109 -109
  83. package/Runtime/Core/Extension/StringExtensions.cs +151 -151
  84. package/Runtime/Core/Extension/UnityExtensions.cs +1607 -1607
  85. package/Runtime/Core/Helper/ArrayConverter.cs +39 -39
  86. package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
  87. package/Runtime/Core/Helper/AssignUtilities.cs +14 -14
  88. package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
  89. package/Runtime/Core/Helper/Enumerables.cs +17 -17
  90. package/Runtime/Core/Helper/Geometry.cs +43 -43
  91. package/Runtime/Core/Helper/Helpers.cs +722 -722
  92. package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
  93. package/Runtime/Core/Helper/IterationHelpers.cs +32 -32
  94. package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
  95. package/Runtime/Core/Helper/LifetimeHelpers.cs +13 -13
  96. package/Runtime/Core/Helper/Objects.cs +767 -767
  97. package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
  98. package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
  99. package/Runtime/Core/Helper/Partials/MathHelpers.cs +30 -30
  100. package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
  101. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +388 -388
  102. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
  103. package/Runtime/Core/Helper/Partials/TransformHelpers.cs +167 -167
  104. package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
  105. package/Runtime/Core/Helper/Partials.meta +2 -2
  106. package/Runtime/Core/Helper/ReflectionHelpers.cs +152 -0
  107. package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +3 -0
  108. package/Runtime/Core/Helper/SpriteHelpers.cs +86 -86
  109. package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
  110. package/Runtime/Core/Helper/StringInList.cs +31 -31
  111. package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
  112. package/Runtime/Core/Helper/WallMath.cs +166 -166
  113. package/Runtime/Core/Math/Line.cs +55 -55
  114. package/Runtime/Core/Math/Parabola.cs +47 -47
  115. package/Runtime/Core/Math/PointPolygonCheck.cs +36 -36
  116. package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
  117. package/Runtime/Core/Math/Range.cs +92 -92
  118. package/Runtime/Core/Math/XXHash.cs +310 -310
  119. package/Runtime/Core/Math/XXHash.cs.meta +11 -11
  120. package/Runtime/Core/Model/Direction.cs +43 -43
  121. package/Runtime/Core/OneOf/FastOneOf.cs +152 -152
  122. package/Runtime/Core/OneOf/None.cs +4 -4
  123. package/Runtime/Core/Random/AbstractRandom.cs +561 -561
  124. package/Runtime/Core/Random/DotNetRandom.cs +52 -52
  125. package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
  126. package/Runtime/Core/Random/IRandom.cs +160 -160
  127. package/Runtime/Core/Random/NativePcgRandom.cs +97 -97
  128. package/Runtime/Core/Random/PRNG.cs +7 -7
  129. package/Runtime/Core/Random/PRNG.cs.meta +2 -2
  130. package/Runtime/Core/Random/PcgRandom.cs +149 -149
  131. package/Runtime/Core/Random/PerlinNoise.cs +369 -369
  132. package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
  133. package/Runtime/Core/Random/RandomState.cs +131 -131
  134. package/Runtime/Core/Random/RandomUtilities.cs +26 -26
  135. package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
  136. package/Runtime/Core/Random/RomuDuo.cs +116 -116
  137. package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
  138. package/Runtime/Core/Random/SplitMix64.cs +94 -94
  139. package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
  140. package/Runtime/Core/Random/SquirrelRandom.cs +84 -84
  141. package/Runtime/Core/Random/SystemRandom.cs +162 -162
  142. package/Runtime/Core/Random/ThreadLocalRandom.cs +12 -12
  143. package/Runtime/Core/Random/UnityRandom.cs +57 -57
  144. package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
  145. package/Runtime/Core/Random/WyRandom.cs +121 -121
  146. package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
  147. package/Runtime/Core/Random/XorShiftRandom.cs +47 -47
  148. package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
  149. package/Runtime/Core/Random/XorShiroRandom.cs +117 -117
  150. package/Runtime/Core/Random/XorShiroRandom.cs.meta +2 -2
  151. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +74 -74
  152. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +81 -81
  153. package/Runtime/Core/Serialization/Serializer.cs +184 -184
  154. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +107 -107
  155. package/Runtime/Protobuf-Net/System.Buffers.dll.meta +33 -33
  156. package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
  157. package/Runtime/Protobuf-Net/System.Collections.Immutable.xml +5379 -5379
  158. package/Runtime/Protobuf-Net/System.Collections.Immutable.xml.meta +7 -7
  159. package/Runtime/Protobuf-Net/System.Numerics.Vectors.dll.meta +33 -33
  160. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
  161. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml +290 -290
  162. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.xml.meta +7 -7
  163. package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
  164. package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
  165. package/Runtime/UI/LayeredImage.cs +364 -364
  166. package/Runtime/UI/LayeredImage.cs.meta +2 -2
  167. package/Runtime/UI.meta +2 -2
  168. package/Runtime/Utils/AnimationEventEqualityComparer.cs +161 -161
  169. package/Runtime/Utils/AnimatorEnumStateMachine.cs +88 -88
  170. package/Runtime/Utils/Buffers.cs +32 -32
  171. package/Runtime/Utils/CenterPointOffset.cs +30 -30
  172. package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
  173. package/Runtime/Utils/CircleLineRenderer.cs +134 -134
  174. package/Runtime/Utils/CoroutineHandler.cs +4 -4
  175. package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
  176. package/Runtime/Utils/MatchColliderToSprite.cs +94 -94
  177. package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
  178. package/Runtime/Utils/Oscillator.cs +27 -27
  179. package/Runtime/Utils/RuntimeSingleton.cs +57 -57
  180. package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
  181. package/Runtime/Utils/SetTextureImportData.cs +69 -69
  182. package/Runtime/Utils/SpriteRendererMetadata.cs +312 -312
  183. package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
  184. package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
  185. package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
  186. package/Runtime/Utils/TextureScale.cs +179 -179
  187. package/Runtime/Utils/TextureScale.cs.meta +2 -2
  188. package/Runtime/WallstopStudios.UnityHelpers.asmdef +13 -13
  189. package/Tests/Runtime/Attributes/ChildComponentTests.cs +81 -81
  190. package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
  191. package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
  192. package/Tests/Runtime/Attributes/ParentComponentTests.cs +68 -68
  193. package/Tests/Runtime/Components/RelationalComponentTester.cs +34 -0
  194. package/Tests/Runtime/Components/RelationalComponentTester.cs.meta +3 -0
  195. package/Tests/Runtime/Components.meta +3 -0
  196. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +14 -14
  197. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs.meta +11 -11
  198. package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +324 -324
  199. package/Tests/Runtime/DataStructures/QuadTreeTests.cs +14 -14
  200. package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +11 -11
  201. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +130 -130
  202. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +11 -11
  203. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +14 -14
  204. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs.meta +11 -11
  205. package/Tests/Runtime/DataStructures.meta +8 -8
  206. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +439 -439
  207. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
  208. package/Tests/Runtime/Extensions/IListExtensionTests.cs +76 -76
  209. package/Tests/Runtime/Extensions/RandomExtensionTests.cs +27 -27
  210. package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
  211. package/Tests/Runtime/Extensions/StringExtensionTests.cs +31 -31
  212. package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
  213. package/Tests/Runtime/Extensions.meta +2 -2
  214. package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
  215. package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
  216. package/Tests/Runtime/Helper/ObjectHelperTests.cs +402 -402
  217. package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
  218. package/Tests/Runtime/Helper/WallMathTests.cs +233 -233
  219. package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
  220. package/Tests/Runtime/Helper.meta +2 -2
  221. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +14 -14
  222. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +11 -11
  223. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +14 -14
  224. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +11 -11
  225. package/Tests/Runtime/Performance/RandomPerformanceTests.cs +139 -139
  226. package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
  227. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +37 -0
  228. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs.meta +3 -0
  229. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +154 -154
  230. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +11 -11
  231. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +14 -14
  232. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +11 -11
  233. package/Tests/Runtime/Performance.meta +8 -8
  234. package/Tests/Runtime/Random/DotNetRandomTests.cs +9 -9
  235. package/Tests/Runtime/Random/DotNetRandomTests.cs.meta +2 -2
  236. package/Tests/Runtime/Random/PcgRandomTests.cs +9 -9
  237. package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -11
  238. package/Tests/Runtime/Random/RandomTestBase.cs +787 -787
  239. package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -11
  240. package/Tests/Runtime/Random/RomuDuoRandomTests.cs +9 -9
  241. package/Tests/Runtime/Random/RomuDuoRandomTests.cs.meta +2 -2
  242. package/Tests/Runtime/Random/SplitMix64RandomTests.cs +9 -9
  243. package/Tests/Runtime/Random/SplitMix64RandomTests.cs.meta +2 -2
  244. package/Tests/Runtime/Random/SquirrelRandomTests.cs +14 -14
  245. package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -11
  246. package/Tests/Runtime/Random/SystemRandomTests.cs +10 -10
  247. package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -11
  248. package/Tests/Runtime/Random/UnityRandomTests.cs +9 -9
  249. package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -11
  250. package/Tests/Runtime/Random/WyRandomTests.cs +9 -9
  251. package/Tests/Runtime/Random/WyRandomTests.cs.meta +2 -2
  252. package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -9
  253. package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -11
  254. package/Tests/Runtime/Random/XorShiroRandomTests.cs +9 -9
  255. package/Tests/Runtime/Random/XorShiroRandomTests.cs.meta +2 -2
  256. package/Tests/Runtime/Random.meta +8 -8
  257. package/Tests/Runtime/Serialization/JsonSerializationTest.cs +84 -84
  258. package/Tests/Runtime/Serialization/JsonSerializationTest.cs.meta +2 -2
  259. package/Tests/Runtime/Serialization.meta +2 -2
  260. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs +399 -399
  261. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs.meta +2 -2
  262. package/Tests/Runtime/Utils.meta +2 -2
  263. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +22 -22
  264. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -7
  265. package/Tests/Runtime.meta +8 -8
  266. package/package.json +38 -38
package/.gitattributes CHANGED
@@ -1,63 +1,63 @@
1
- ###############################################################################
2
- # Set default behavior to automatically normalize line endings.
3
- ###############################################################################
4
- * text=auto
5
-
6
- ###############################################################################
7
- # Set default behavior for command prompt diff.
8
- #
9
- # This is need for earlier builds of msysgit that does not have it on by
10
- # default for csharp files.
11
- # Note: This is only used by command line
12
- ###############################################################################
13
- #*.cs diff=csharp
14
-
15
- ###############################################################################
16
- # Set the merge driver for project and solution files
17
- #
18
- # Merging from the command prompt will add diff markers to the files if there
19
- # are conflicts (Merging from VS is not affected by the settings below, in VS
20
- # the diff markers are never inserted). Diff markers may cause the following
21
- # file extensions to fail to load in VS. An alternative would be to treat
22
- # these files as binary and thus will always conflict and require user
23
- # intervention with every merge. To do so, just uncomment the entries below
24
- ###############################################################################
25
- #*.sln merge=binary
26
- #*.csproj merge=binary
27
- #*.vbproj merge=binary
28
- #*.vcxproj merge=binary
29
- #*.vcproj merge=binary
30
- #*.dbproj merge=binary
31
- #*.fsproj merge=binary
32
- #*.lsproj merge=binary
33
- #*.wixproj merge=binary
34
- #*.modelproj merge=binary
35
- #*.sqlproj merge=binary
36
- #*.wwaproj merge=binary
37
-
38
- ###############################################################################
39
- # behavior for image files
40
- #
41
- # image files are treated as binary by default.
42
- ###############################################################################
43
- #*.jpg binary
44
- #*.png binary
45
- #*.gif binary
46
-
47
- ###############################################################################
48
- # diff behavior for common document formats
49
- #
50
- # Convert binary document formats to text before diffing them. This feature
51
- # is only available from the command line. Turn it on by uncommenting the
52
- # entries below.
53
- ###############################################################################
54
- #*.doc diff=astextplain
55
- #*.DOC diff=astextplain
56
- #*.docx diff=astextplain
57
- #*.DOCX diff=astextplain
58
- #*.dot diff=astextplain
59
- #*.DOT diff=astextplain
60
- #*.pdf diff=astextplain
61
- #*.PDF diff=astextplain
62
- #*.rtf diff=astextplain
63
- #*.RTF diff=astextplain
1
+ ###############################################################################
2
+ # Set default behavior to automatically normalize line endings.
3
+ ###############################################################################
4
+ * text=auto
5
+
6
+ ###############################################################################
7
+ # Set default behavior for command prompt diff.
8
+ #
9
+ # This is need for earlier builds of msysgit that does not have it on by
10
+ # default for csharp files.
11
+ # Note: This is only used by command line
12
+ ###############################################################################
13
+ #*.cs diff=csharp
14
+
15
+ ###############################################################################
16
+ # Set the merge driver for project and solution files
17
+ #
18
+ # Merging from the command prompt will add diff markers to the files if there
19
+ # are conflicts (Merging from VS is not affected by the settings below, in VS
20
+ # the diff markers are never inserted). Diff markers may cause the following
21
+ # file extensions to fail to load in VS. An alternative would be to treat
22
+ # these files as binary and thus will always conflict and require user
23
+ # intervention with every merge. To do so, just uncomment the entries below
24
+ ###############################################################################
25
+ #*.sln merge=binary
26
+ #*.csproj merge=binary
27
+ #*.vbproj merge=binary
28
+ #*.vcxproj merge=binary
29
+ #*.vcproj merge=binary
30
+ #*.dbproj merge=binary
31
+ #*.fsproj merge=binary
32
+ #*.lsproj merge=binary
33
+ #*.wixproj merge=binary
34
+ #*.modelproj merge=binary
35
+ #*.sqlproj merge=binary
36
+ #*.wwaproj merge=binary
37
+
38
+ ###############################################################################
39
+ # behavior for image files
40
+ #
41
+ # image files are treated as binary by default.
42
+ ###############################################################################
43
+ #*.jpg binary
44
+ #*.png binary
45
+ #*.gif binary
46
+
47
+ ###############################################################################
48
+ # diff behavior for common document formats
49
+ #
50
+ # Convert binary document formats to text before diffing them. This feature
51
+ # is only available from the command line. Turn it on by uncommenting the
52
+ # entries below.
53
+ ###############################################################################
54
+ #*.doc diff=astextplain
55
+ #*.DOC diff=astextplain
56
+ #*.docx diff=astextplain
57
+ #*.DOCX diff=astextplain
58
+ #*.dot diff=astextplain
59
+ #*.DOT diff=astextplain
60
+ #*.pdf diff=astextplain
61
+ #*.PDF diff=astextplain
62
+ #*.rtf diff=astextplain
63
+ #*.RTF diff=astextplain
@@ -0,0 +1,60 @@
1
+ name: Publish to NPM
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main # Change this to your default branch
7
+ paths:
8
+ - 'package.json'
9
+
10
+ jobs:
11
+ publish_npm:
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - name: Checkout Repository
16
+ uses: actions/checkout@v4
17
+ with:
18
+ fetch-depth: 0 # Ensure full commit history for version comparison
19
+
20
+ - name: Set up Node.js
21
+ uses: actions/setup-node@v4
22
+ with:
23
+ node-version: 18
24
+ registry-url: 'https://registry.npmjs.org/'
25
+
26
+ - name: Check if version changed
27
+ id: version_check
28
+ run: |
29
+ PREV_VERSION=$(git show HEAD~1:package.json | jq -r '.version' || echo "0.0.0")
30
+ NEW_VERSION=$(jq -r '.version' package.json)
31
+ echo "Previous version: $PREV_VERSION"
32
+ echo "New version: $NEW_VERSION"
33
+
34
+ if [ "$PREV_VERSION" != "$NEW_VERSION" ]; then
35
+ echo "Version changed, proceeding..."
36
+ echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
37
+ echo "should_publish=true" >> $GITHUB_ENV
38
+
39
+ # Detect pre-releases (versions with "rc" or similar tags)
40
+ if [[ "$NEW_VERSION" == *"rc"* ]]; then
41
+ echo "This is a pre-release (next tag)."
42
+ echo "NPM_TAG=next" >> $GITHUB_ENV
43
+ else
44
+ echo "This is a stable release (latest tag)."
45
+ echo "NPM_TAG=latest" >> $GITHUB_ENV
46
+ fi
47
+ else
48
+ echo "Version did not change, skipping..."
49
+ echo "should_publish=false" >> $GITHUB_ENV
50
+ fi
51
+
52
+ - name: Install Dependencies
53
+ if: env.should_publish == 'true'
54
+ run: npm install
55
+
56
+ - name: Publish to NPM
57
+ if: env.should_publish == 'true'
58
+ run: npm publish --access public --tag ${{ env.NPM_TAG }}
59
+ env:
60
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -0,0 +1,87 @@
1
+ name: Export and Release Unity Package
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main # Change to your default branch
7
+ paths:
8
+ - 'package.json'
9
+
10
+ jobs:
11
+ package_unity:
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - name: Checkout Repository
16
+ uses: actions/checkout@v4
17
+ with:
18
+ fetch-depth: 0 # Ensures full git history for version comparison
19
+
20
+ - name: Set up Node.js
21
+ uses: actions/setup-node@v4
22
+ with:
23
+ node-version: 18
24
+
25
+ - name: Check if version changed
26
+ id: version_check
27
+ run: |
28
+ PREV_VERSION=$(git show HEAD~1:package.json | jq -r '.version' || echo "0.0.0")
29
+ NEW_VERSION=$(jq -r '.version' package.json)
30
+ echo "Previous version: $PREV_VERSION"
31
+ echo "New version: $NEW_VERSION"
32
+
33
+ if [ "$PREV_VERSION" != "$NEW_VERSION" ]; then
34
+ echo "Version changed, proceeding..."
35
+ echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
36
+ echo "should_build=true" >> $GITHUB_ENV
37
+
38
+ # Check if version contains "rc" (release candidate)
39
+ if [[ "$NEW_VERSION" == *"rc"* ]]; then
40
+ echo "This is a release candidate (pre-release)."
41
+ echo "IS_PRERELEASE=true" >> $GITHUB_ENV
42
+ else
43
+ echo "This is a stable release."
44
+ echo "IS_PRERELEASE=false" >> $GITHUB_ENV
45
+ fi
46
+ else
47
+ echo "Version did not change, skipping..."
48
+ echo "should_build=false" >> $GITHUB_ENV
49
+ fi
50
+
51
+ - name: Set up Unity
52
+ if: env.should_build == 'true'
53
+ uses: game-ci/unity-builder@v3
54
+ with:
55
+ unityVersion: 2022.3.10f1 # Change to your Unity version
56
+ targetPlatform: StandaloneLinux64
57
+
58
+ - name: Export Unity Package
59
+ if: env.should_build == 'true'
60
+ run: |
61
+ EXPORT_DIR="UnityHelpers"
62
+ PACKAGE_NAME="WallstopStudios.UnityHelpers.unitypackage"
63
+
64
+ mkdir -p $EXPORT_DIR
65
+
66
+ echo "Exporting package: $EXPORT_DIR/$PACKAGE_NAME"
67
+
68
+ /opt/unity/Editor/Unity \
69
+ -batchmode -quit \
70
+ -projectPath "$(pwd)" \
71
+ -exportPackage "Assets" "$EXPORT_DIR/$PACKAGE_NAME"
72
+
73
+ echo "PACKAGE_PATH=$EXPORT_DIR/$PACKAGE_NAME" >> $GITHUB_ENV
74
+
75
+ - name: Create GitHub Release
76
+ if: env.should_build == 'true'
77
+ id: create_release
78
+ uses: softprops/action-gh-release@v2
79
+ with:
80
+ tag_name: v${{ env.NEW_VERSION }}
81
+ release_name: "Unity Helpers v${{ env.NEW_VERSION }}"
82
+ body: "Automatically generated release for version ${{ env.NEW_VERSION }}."
83
+ draft: false
84
+ prerelease: ${{ env.IS_PRERELEASE == 'true' }}
85
+ files: ${{ env.PACKAGE_PATH }}
86
+ env:
87
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -1,158 +1,158 @@
1
- namespace UnityHelpers.Editor
2
- {
3
- #if UNITY_EDITOR
4
- using System;
5
- using System.IO;
6
- using Core.Attributes;
7
- using Core.Extension;
8
- using UnityEditor;
9
- using UnityEngine;
10
- using Utils;
11
-
12
- public sealed class AnimationCopier : ScriptableWizard
13
- {
14
- private string _fullSourcePath;
15
- private string _fullDestinationPath;
16
-
17
- [ReadOnly]
18
- public string animationSourcePath;
19
-
20
- [ReadOnly]
21
- public string animationDestinationPath;
22
-
23
- [MenuItem("Tools/Unity Helpers/Animation Copier")]
24
- public static void CopyAnimations()
25
- {
26
- _ = DisplayWizard<AnimationCopier>("Animation Copier", "Copy");
27
- }
28
-
29
- protected override bool DrawWizardGUI()
30
- {
31
- bool returnValue = base.DrawWizardGUI();
32
-
33
- if (GUILayout.Button("Set Animation Source Path"))
34
- {
35
- string sourcePath = EditorUtility.OpenFolderPanel(
36
- "Select Animation Source Path",
37
- EditorUtilities.GetCurrentPathOfProjectWindow(),
38
- string.Empty
39
- );
40
- int assetIndex = sourcePath?.IndexOf("Assets", StringComparison.Ordinal) ?? -1;
41
- if (assetIndex < 0)
42
- {
43
- return false;
44
- }
45
-
46
- _fullSourcePath = animationSourcePath = sourcePath ?? string.Empty;
47
- animationSourcePath = animationSourcePath.Substring(assetIndex);
48
- return true;
49
- }
50
-
51
- if (GUILayout.Button("Set Animation Destination Path"))
52
- {
53
- string sourcePath = EditorUtility.OpenFolderPanel(
54
- "Select Animation Destination Path",
55
- EditorUtilities.GetCurrentPathOfProjectWindow(),
56
- string.Empty
57
- );
58
- int assetIndex = sourcePath?.IndexOf("Assets", StringComparison.Ordinal) ?? -1;
59
- if (assetIndex < 0)
60
- {
61
- return false;
62
- }
63
-
64
- _fullDestinationPath = animationDestinationPath = sourcePath ?? string.Empty;
65
- animationDestinationPath = animationDestinationPath.Substring(assetIndex);
66
- return true;
67
- }
68
-
69
- return returnValue;
70
- }
71
-
72
- private void OnWizardCreate()
73
- {
74
- if (string.IsNullOrEmpty(_fullSourcePath) || string.IsNullOrEmpty(_fullDestinationPath))
75
- {
76
- return;
77
- }
78
-
79
- if (
80
- string.IsNullOrEmpty(animationSourcePath)
81
- || string.IsNullOrEmpty(animationDestinationPath)
82
- )
83
- {
84
- return;
85
- }
86
-
87
- int processed = 0;
88
- foreach (
89
- string assetGuid in AssetDatabase.FindAssets(
90
- "t:AnimationClip",
91
- new[] { animationSourcePath }
92
- )
93
- )
94
- {
95
- string path = AssetDatabase.GUIDToAssetPath(assetGuid);
96
-
97
- AnimationClip animationClip = AssetDatabase.LoadAssetAtPath<AnimationClip>(path);
98
- if (animationClip == null)
99
- {
100
- this.LogError(
101
- "Invalid AnimationClip (null) found at path '{0}', skipping.",
102
- path
103
- );
104
- continue;
105
- }
106
-
107
- string prefix = animationClip.name;
108
- string relativePath = path.Substring(animationSourcePath.Length);
109
- int prefixIndex = relativePath.LastIndexOf(
110
- prefix,
111
- StringComparison.OrdinalIgnoreCase
112
- );
113
- if (prefixIndex < 0)
114
- {
115
- this.LogWarn(
116
- "Unsupported animation at '{0}', expected to be prefixed by '{1}'.",
117
- path,
118
- prefix
119
- );
120
- continue;
121
- }
122
-
123
- string partialPath = relativePath.Substring(0, prefixIndex);
124
- string outputPath = _fullDestinationPath + partialPath;
125
-
126
- if (!Directory.Exists(outputPath))
127
- {
128
- _ = Directory.CreateDirectory(outputPath);
129
- }
130
-
131
- string destination =
132
- animationDestinationPath + partialPath + relativePath.Substring(prefixIndex);
133
- bool copySuccessful = AssetDatabase.CopyAsset(path, destination);
134
- if (copySuccessful)
135
- {
136
- bool deleteSuccessful = AssetDatabase.DeleteAsset(path);
137
- if (!deleteSuccessful)
138
- {
139
- this.LogError("Failed to delete asset at path '{0}'.", path);
140
- }
141
-
142
- ++processed;
143
- }
144
- else
145
- {
146
- this.LogError(
147
- "Failed to copy animation from '{0}' to '{1}'.",
148
- path,
149
- destination
150
- );
151
- }
152
- }
153
-
154
- this.Log($"Processed {processed} AnimationClips.");
155
- }
156
- }
157
- #endif
158
- }
1
+ namespace UnityHelpers.Editor
2
+ {
3
+ #if UNITY_EDITOR
4
+ using System;
5
+ using System.IO;
6
+ using Core.Attributes;
7
+ using Core.Extension;
8
+ using UnityEditor;
9
+ using UnityEngine;
10
+ using Utils;
11
+
12
+ public sealed class AnimationCopier : ScriptableWizard
13
+ {
14
+ private string _fullSourcePath;
15
+ private string _fullDestinationPath;
16
+
17
+ [ReadOnly]
18
+ public string animationSourcePath;
19
+
20
+ [ReadOnly]
21
+ public string animationDestinationPath;
22
+
23
+ [MenuItem("Tools/Unity Helpers/Animation Copier")]
24
+ public static void CopyAnimations()
25
+ {
26
+ _ = DisplayWizard<AnimationCopier>("Animation Copier", "Copy");
27
+ }
28
+
29
+ protected override bool DrawWizardGUI()
30
+ {
31
+ bool returnValue = base.DrawWizardGUI();
32
+
33
+ if (GUILayout.Button("Set Animation Source Path"))
34
+ {
35
+ string sourcePath = EditorUtility.OpenFolderPanel(
36
+ "Select Animation Source Path",
37
+ EditorUtilities.GetCurrentPathOfProjectWindow(),
38
+ string.Empty
39
+ );
40
+ int assetIndex = sourcePath?.IndexOf("Assets", StringComparison.Ordinal) ?? -1;
41
+ if (assetIndex < 0)
42
+ {
43
+ return false;
44
+ }
45
+
46
+ _fullSourcePath = animationSourcePath = sourcePath ?? string.Empty;
47
+ animationSourcePath = animationSourcePath.Substring(assetIndex);
48
+ return true;
49
+ }
50
+
51
+ if (GUILayout.Button("Set Animation Destination Path"))
52
+ {
53
+ string sourcePath = EditorUtility.OpenFolderPanel(
54
+ "Select Animation Destination Path",
55
+ EditorUtilities.GetCurrentPathOfProjectWindow(),
56
+ string.Empty
57
+ );
58
+ int assetIndex = sourcePath?.IndexOf("Assets", StringComparison.Ordinal) ?? -1;
59
+ if (assetIndex < 0)
60
+ {
61
+ return false;
62
+ }
63
+
64
+ _fullDestinationPath = animationDestinationPath = sourcePath ?? string.Empty;
65
+ animationDestinationPath = animationDestinationPath.Substring(assetIndex);
66
+ return true;
67
+ }
68
+
69
+ return returnValue;
70
+ }
71
+
72
+ private void OnWizardCreate()
73
+ {
74
+ if (string.IsNullOrEmpty(_fullSourcePath) || string.IsNullOrEmpty(_fullDestinationPath))
75
+ {
76
+ return;
77
+ }
78
+
79
+ if (
80
+ string.IsNullOrEmpty(animationSourcePath)
81
+ || string.IsNullOrEmpty(animationDestinationPath)
82
+ )
83
+ {
84
+ return;
85
+ }
86
+
87
+ int processed = 0;
88
+ foreach (
89
+ string assetGuid in AssetDatabase.FindAssets(
90
+ "t:AnimationClip",
91
+ new[] { animationSourcePath }
92
+ )
93
+ )
94
+ {
95
+ string path = AssetDatabase.GUIDToAssetPath(assetGuid);
96
+
97
+ AnimationClip animationClip = AssetDatabase.LoadAssetAtPath<AnimationClip>(path);
98
+ if (animationClip == null)
99
+ {
100
+ this.LogError(
101
+ "Invalid AnimationClip (null) found at path '{0}', skipping.",
102
+ path
103
+ );
104
+ continue;
105
+ }
106
+
107
+ string prefix = animationClip.name;
108
+ string relativePath = path.Substring(animationSourcePath.Length);
109
+ int prefixIndex = relativePath.LastIndexOf(
110
+ prefix,
111
+ StringComparison.OrdinalIgnoreCase
112
+ );
113
+ if (prefixIndex < 0)
114
+ {
115
+ this.LogWarn(
116
+ "Unsupported animation at '{0}', expected to be prefixed by '{1}'.",
117
+ path,
118
+ prefix
119
+ );
120
+ continue;
121
+ }
122
+
123
+ string partialPath = relativePath.Substring(0, prefixIndex);
124
+ string outputPath = _fullDestinationPath + partialPath;
125
+
126
+ if (!Directory.Exists(outputPath))
127
+ {
128
+ _ = Directory.CreateDirectory(outputPath);
129
+ }
130
+
131
+ string destination =
132
+ animationDestinationPath + partialPath + relativePath.Substring(prefixIndex);
133
+ bool copySuccessful = AssetDatabase.CopyAsset(path, destination);
134
+ if (copySuccessful)
135
+ {
136
+ bool deleteSuccessful = AssetDatabase.DeleteAsset(path);
137
+ if (!deleteSuccessful)
138
+ {
139
+ this.LogError("Failed to delete asset at path '{0}'.", path);
140
+ }
141
+
142
+ ++processed;
143
+ }
144
+ else
145
+ {
146
+ this.LogError(
147
+ "Failed to copy animation from '{0}' to '{1}'.",
148
+ path,
149
+ destination
150
+ );
151
+ }
152
+ }
153
+
154
+ this.Log($"Processed {processed} AnimationClips.");
155
+ }
156
+ }
157
+ #endif
158
+ }
@@ -1,3 +1,3 @@
1
- fileFormatVersion: 2
2
- guid: 40462f0dd8a4429e983409e3374ae66e
1
+ fileFormatVersion: 2
2
+ guid: 40462f0dd8a4429e983409e3374ae66e
3
3
  timeCreated: 1720665801