com.wallstop-studios.unity-helpers 2.0.0-rc81.7 → 2.0.0-rc81.9

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 (1449) hide show
  1. package/.config/dotnet-tools.json +10 -10
  2. package/.csharpierignore +1 -0
  3. package/.csharpierrc.json +3 -0
  4. package/.editorconfig +184 -184
  5. package/.gitattributes +87 -63
  6. package/.githooks/pre-commit +49 -0
  7. package/.github/dependabot.yml +9 -9
  8. package/.github/workflows/csharpier.yml +135 -0
  9. package/.github/workflows/lint-doc-links.yml +27 -0
  10. package/.github/workflows/markdown-json.yml +41 -0
  11. package/.github/workflows/npm-publish.yml +75 -75
  12. package/.lychee.toml +26 -0
  13. package/.markdownlint.json +21 -0
  14. package/.markdownlintignore +8 -0
  15. package/.pre-commit-config.yaml +39 -22
  16. package/.prettierignore +22 -0
  17. package/.prettierrc.json +20 -0
  18. package/AGENTS.md +52 -0
  19. package/{Third Party Notices.md.meta → AGENTS.md.meta} +7 -7
  20. package/CHANGELOG.md.meta +7 -7
  21. package/DATA_STRUCTURES.md +324 -0
  22. package/DATA_STRUCTURES.md.meta +7 -0
  23. package/Docs/Images/attribute_resolution.svg +40 -0
  24. package/Docs/Images/attribute_resolution.svg.meta +7 -0
  25. package/Docs/Images/bitset.svg +47 -0
  26. package/Docs/Images/bitset.svg.meta +7 -0
  27. package/Docs/Images/concave_hull.svg +30 -0
  28. package/Docs/Images/concave_hull.svg.meta +7 -0
  29. package/Docs/Images/convex_hull.svg +29 -0
  30. package/Docs/Images/convex_hull.svg.meta +7 -0
  31. package/Docs/Images/cyclic_buffer.svg +37 -0
  32. package/Docs/Images/cyclic_buffer.svg.meta +7 -0
  33. package/Docs/Images/data_distribution_decision.svg +88 -0
  34. package/Docs/Images/data_distribution_decision.svg.meta +7 -0
  35. package/Docs/Images/deque.svg +64 -0
  36. package/Docs/Images/deque.svg.meta +7 -0
  37. package/Docs/Images/deque_queue.svg +107 -0
  38. package/Docs/Images/deque_queue.svg.meta +7 -0
  39. package/Docs/Images/disjoint_set.svg +47 -0
  40. package/Docs/Images/disjoint_set.svg.meta +7 -0
  41. package/Docs/Images/effects_pipeline.svg +59 -0
  42. package/Docs/Images/effects_pipeline.svg.meta +7 -0
  43. package/Docs/Images/geometry_edge_cases.svg +61 -0
  44. package/Docs/Images/geometry_edge_cases.svg.meta +7 -0
  45. package/Docs/Images/heap.svg +56 -0
  46. package/Docs/Images/heap.svg.meta +7 -0
  47. package/Docs/Images/kdtree_2d.svg +38 -0
  48. package/Docs/Images/kdtree_2d.svg.meta +7 -0
  49. package/Docs/Images/kdtree_3d.svg +83 -0
  50. package/Docs/Images/kdtree_3d.svg.meta +7 -0
  51. package/Docs/Images/octree_3d.svg +79 -0
  52. package/Docs/Images/octree_3d.svg.meta +7 -0
  53. package/Docs/Images/polyline_simplify.svg +18 -0
  54. package/Docs/Images/polyline_simplify.svg.meta +7 -0
  55. package/Docs/Images/quadtree_2d.svg +37 -0
  56. package/Docs/Images/quadtree_2d.svg.meta +7 -0
  57. package/Docs/Images/query_boundaries.svg +38 -0
  58. package/Docs/Images/query_boundaries.svg.meta +7 -0
  59. package/Docs/Images/random_generators.svg +105 -0
  60. package/Docs/Images/random_generators.svg.meta +7 -0
  61. package/Docs/Images/reflection_scan.svg +33 -0
  62. package/Docs/Images/reflection_scan.svg.meta +7 -0
  63. package/Docs/Images/relational_wiring.svg +75 -0
  64. package/Docs/Images/relational_wiring.svg.meta +7 -0
  65. package/Docs/Images/rtree_2d.svg +27 -0
  66. package/Docs/Images/rtree_2d.svg.meta +7 -0
  67. package/Docs/Images/rtree_3d.svg +79 -0
  68. package/Docs/Images/rtree_3d.svg.meta +7 -0
  69. package/Docs/Images/serialization_flow.svg +50 -0
  70. package/Docs/Images/serialization_flow.svg.meta +7 -0
  71. package/Docs/Images/singletons_lifecycle.svg +54 -0
  72. package/Docs/Images/singletons_lifecycle.svg.meta +7 -0
  73. package/Docs/Images/sparse_set.svg +54 -0
  74. package/Docs/Images/sparse_set.svg.meta +7 -0
  75. package/Docs/Images/trie.svg +55 -0
  76. package/Docs/Images/trie.svg.meta +7 -0
  77. package/Docs/Images.meta +8 -0
  78. package/Docs.meta +8 -0
  79. package/EDITOR_TOOLS_GUIDE.md +1976 -0
  80. package/EDITOR_TOOLS_GUIDE.md.meta +7 -0
  81. package/EFFECTS_SYSTEM.md +242 -0
  82. package/EFFECTS_SYSTEM.md.meta +7 -0
  83. package/EFFECTS_SYSTEM_TUTORIAL.md +467 -0
  84. package/EFFECTS_SYSTEM_TUTORIAL.md.meta +7 -0
  85. package/Editor/AnimationEventEditor.cs +1393 -874
  86. package/Editor/AnimationEventEditor.cs.meta +11 -11
  87. package/Editor/AssemblyInfo.cs +4 -0
  88. package/Editor/AssemblyInfo.cs.meta +3 -0
  89. package/Editor/AssetProcessors/SpriteLabelProcessor.cs +138 -111
  90. package/Editor/AssetProcessors/SpriteLabelProcessor.cs.meta +2 -2
  91. package/Editor/AssetProcessors.meta +2 -2
  92. package/Editor/Core/Helper/AnimationEventHelpers.cs +204 -0
  93. package/{Runtime/Core/DataStructure/ISpatialTree.cs.meta → Editor/Core/Helper/AnimationEventHelpers.cs.meta} +11 -11
  94. package/Editor/Core/Helper.meta +8 -0
  95. package/Editor/Core.meta +8 -0
  96. package/Editor/CustomDrawers/IntDropdownDrawer.cs +46 -46
  97. package/Editor/CustomDrawers/IntDropdownDrawer.cs.meta +2 -2
  98. package/Editor/CustomDrawers/StringInListeDrawer.cs +135 -135
  99. package/Editor/CustomDrawers/StringInListeDrawer.cs.meta +2 -2
  100. package/Editor/CustomDrawers/WShowIfPropertyDrawer.cs +105 -105
  101. package/Editor/CustomDrawers/WShowIfPropertyDrawer.cs.meta +2 -2
  102. package/Editor/CustomDrawers.meta +2 -2
  103. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs +32 -32
  104. package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs.meta +2 -2
  105. package/Editor/CustomEditors/PersistentDirectoryGUI.cs +799 -799
  106. package/Editor/CustomEditors/PersistentDirectoryGUI.cs.meta +2 -2
  107. package/Editor/CustomEditors/PolygonCollider2DOptimizerEditor.cs +38 -40
  108. package/Editor/CustomEditors/PolygonCollider2DOptimizerEditor.cs.meta +2 -2
  109. package/Editor/CustomEditors/SourceFolderEntryDrawer.cs +685 -413
  110. package/Editor/CustomEditors/SourceFolderEntryDrawer.cs.meta +2 -2
  111. package/Editor/CustomEditors/TexturePlatformOverrideEntryDrawer.cs +146 -0
  112. package/{Runtime/Core/DataStructure/KDTree.cs.meta → Editor/CustomEditors/TexturePlatformOverrideEntryDrawer.cs.meta} +11 -11
  113. package/Editor/CustomEditors.meta +2 -2
  114. package/Editor/Extensions/SerializedPropertyExtensions.cs +217 -190
  115. package/Editor/Extensions/SerializedPropertyExtensions.cs.meta +2 -2
  116. package/Editor/Extensions/UnityExtensions.cs +50 -26
  117. package/Editor/Extensions/UnityExtensions.cs.meta +2 -2
  118. package/Editor/Extensions.meta +2 -2
  119. package/Editor/FitTextureSizeWindow.cs +785 -332
  120. package/Editor/FitTextureSizeWindow.cs.meta +2 -2
  121. package/Editor/Persistence/MultiFileSelectorPersistenceManager.cs +62 -0
  122. package/{Runtime/Core/DataStructure/QuadTree.cs.meta → Editor/Persistence/MultiFileSelectorPersistenceManager.cs.meta} +11 -11
  123. package/Editor/Persistence/MultiFileSelectorPersistenceWindow.cs +65 -0
  124. package/Editor/Persistence/MultiFileSelectorPersistenceWindow.cs.meta +11 -0
  125. package/Editor/Persistence.meta +8 -0
  126. package/Editor/PersistentDirectorySettings.cs +529 -248
  127. package/Editor/PersistentDirectorySettings.cs.meta +2 -2
  128. package/Editor/PrefabChecker.cs +1329 -741
  129. package/Editor/PrefabChecker.cs.meta +11 -11
  130. package/Editor/Sprites/AnimationCopier.cs +1518 -789
  131. package/Editor/Sprites/AnimationCopier.cs.meta +2 -2
  132. package/Editor/Sprites/AnimationCreator.cs +1532 -881
  133. package/Editor/Sprites/AnimationCreator.cs.meta +11 -11
  134. package/Editor/Sprites/AnimationViewerWindow.cs +1634 -1522
  135. package/Editor/Sprites/AnimationViewerWindow.cs.meta +2 -2
  136. package/Editor/Sprites/ScriptableSpriteAtlas.cs +251 -178
  137. package/Editor/Sprites/ScriptableSpriteAtlas.cs.meta +2 -2
  138. package/Editor/Sprites/ScriptableSpriteAtlasEditor.cs +1470 -1026
  139. package/Editor/Sprites/ScriptableSpriteAtlasEditor.cs.meta +2 -2
  140. package/Editor/Sprites/SpriteCropper.cs +1013 -523
  141. package/Editor/Sprites/SpriteCropper.cs.meta +2 -2
  142. package/Editor/Sprites/SpritePivotAdjustor.cs +605 -265
  143. package/Editor/Sprites/SpritePivotAdjustor.cs.meta +2 -2
  144. package/Editor/Sprites/SpriteSettingsApplier.cs +942 -918
  145. package/Editor/Sprites/SpriteSettingsApplier.cs.meta +2 -2
  146. package/Editor/Sprites/SpriteSettingsApplierAPI.cs +441 -0
  147. package/Editor/Sprites/SpriteSettingsApplierAPI.cs.meta +11 -0
  148. package/Editor/Sprites/SpriteSettingsProfileCollection.cs +12 -0
  149. package/Editor/Sprites/SpriteSettingsProfileCollection.cs.meta +11 -0
  150. package/Editor/Sprites/SpriteSheetAnimationCreator.cs +1586 -1537
  151. package/Editor/Sprites/SpriteSheetAnimationCreator.cs.meta +2 -2
  152. package/Editor/Sprites/TexturePlatformNameHelper.cs +78 -0
  153. package/Editor/Sprites/TexturePlatformNameHelper.cs.meta +11 -0
  154. package/Editor/Sprites/TextureResizerWizard.cs +434 -175
  155. package/Editor/Sprites/TextureResizerWizard.cs.meta +2 -2
  156. package/Editor/Sprites/TextureSettingsApplierAPI.cs +359 -0
  157. package/Editor/Sprites/TextureSettingsApplierAPI.cs.meta +11 -0
  158. package/Editor/Sprites/TextureSettingsApplierWindow.cs +605 -0
  159. package/Editor/Sprites/TextureSettingsApplierWindow.cs.meta +11 -0
  160. package/Editor/Sprites.meta +2 -2
  161. package/Editor/Styles/AnimationViewer.uss +115 -115
  162. package/Editor/Styles/AnimationViewer.uss.meta +2 -2
  163. package/Editor/Styles/AnimationViewer.uxml +56 -56
  164. package/Editor/Styles/AnimationViewer.uxml.meta +2 -2
  165. package/Editor/Styles/SpriteSheetAnimationCreator.uss +10 -0
  166. package/Editor/Styles/SpriteSheetAnimationCreator.uss.meta +11 -0
  167. package/Editor/Styles.meta +2 -2
  168. package/Editor/Tags/AttributeMetadataCacheEditor.cs +46 -0
  169. package/Editor/Tags/AttributeMetadataCacheEditor.cs.meta +11 -0
  170. package/Editor/Tags/AttributeMetadataCacheGenerator.cs +258 -0
  171. package/Editor/Tags/AttributeMetadataCacheGenerator.cs.meta +11 -0
  172. package/Editor/Tags.meta +8 -0
  173. package/Editor/Tools/ImageBlurTool.cs +451 -409
  174. package/Editor/Tools/ImageBlurTool.cs.meta +2 -2
  175. package/Editor/Tools.meta +2 -2
  176. package/Editor/Utils/DxReadOnlyPropertyDrawer.cs +26 -26
  177. package/Editor/Utils/DxReadOnlyPropertyDrawer.cs.meta +11 -11
  178. package/Editor/Utils/EditorUi.cs +228 -0
  179. package/Editor/Utils/EditorUi.cs.meta +11 -0
  180. package/Editor/Utils/EditorUtilities.cs +22 -22
  181. package/Editor/Utils/EditorUtilities.cs.meta +11 -11
  182. package/Editor/Utils/ScriptableObjectSingletonCreator.cs +633 -52
  183. package/Editor/Utils/ScriptableObjectSingletonCreator.cs.meta +2 -2
  184. package/Editor/Utils.meta +8 -8
  185. package/Editor/Visuals/EnhancedImageEditor.cs +160 -160
  186. package/Editor/Visuals/EnhancedImageEditor.cs.meta +11 -11
  187. package/Editor/Visuals.meta +2 -2
  188. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +14 -18
  189. package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -7
  190. package/Editor.meta +8 -8
  191. package/GETTING_STARTED.md +425 -0
  192. package/GETTING_STARTED.md.meta +7 -0
  193. package/GLOSSARY.md +313 -0
  194. package/GLOSSARY.md.meta +7 -0
  195. package/HULLS.md +45 -0
  196. package/HULLS.md.meta +7 -0
  197. package/INDEX.md +429 -0
  198. package/INDEX.md.meta +7 -0
  199. package/LICENSE +21 -21
  200. package/LICENSE.md +7 -7
  201. package/LICENSE.md.meta +7 -7
  202. package/LICENSE.meta +7 -7
  203. package/MATH_AND_EXTENSIONS.md +316 -0
  204. package/MATH_AND_EXTENSIONS.md.meta +7 -0
  205. package/RANDOM_PERFORMANCE.md +140 -0
  206. package/RANDOM_PERFORMANCE.md.meta +7 -0
  207. package/README.md +3195 -188
  208. package/README.md.meta +7 -7
  209. package/REFLECTION_HELPERS.md +272 -0
  210. package/REFLECTION_HELPERS.md.meta +7 -0
  211. package/RELATIONAL_COMPONENTS.md +543 -0
  212. package/RELATIONAL_COMPONENTS.md.meta +7 -0
  213. package/Runtime/AssemblyInfo.cs +7 -0
  214. package/Runtime/AssemblyInfo.cs.meta +11 -0
  215. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll +0 -0
  216. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll.meta +33 -33
  217. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml +499 -278
  218. package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml.meta +7 -7
  219. package/Runtime/Binaries/System.IO.Pipelines.dll +0 -0
  220. package/Runtime/Binaries/System.IO.Pipelines.dll.meta +33 -0
  221. package/Runtime/Binaries/System.IO.Pipelines.xml +702 -0
  222. package/Runtime/Binaries/System.IO.Pipelines.xml.meta +7 -0
  223. package/Runtime/Binaries/System.Text.Encodings.Web.dll +0 -0
  224. package/Runtime/Binaries/System.Text.Encodings.Web.dll.meta +33 -33
  225. package/Runtime/Binaries/System.Text.Encodings.Web.xml +1084 -1079
  226. package/Runtime/Binaries/System.Text.Encodings.Web.xml.meta +7 -7
  227. package/Runtime/Binaries/System.Text.Json.dll +0 -0
  228. package/Runtime/Binaries/System.Text.Json.dll.meta +33 -33
  229. package/Runtime/Binaries/System.Text.Json.xml +10217 -8116
  230. package/Runtime/Binaries/System.Text.Json.xml.meta +7 -7
  231. package/Runtime/Binaries.meta +8 -8
  232. package/Runtime/Core/Attributes/AnimationEventAttribute.cs +10 -138
  233. package/Runtime/Core/Attributes/AnimationEventAttribute.cs.meta +11 -11
  234. package/Runtime/Core/Attributes/BaseRelationalComponentAttribute.cs +841 -0
  235. package/Runtime/Core/Attributes/BaseRelationalComponentAttribute.cs.meta +11 -0
  236. package/Runtime/Core/Attributes/ChildComponentAttribute.cs +284 -226
  237. package/Runtime/Core/Attributes/ChildComponentAttribute.cs.meta +11 -11
  238. package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs +6 -6
  239. package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs.meta +11 -11
  240. package/Runtime/Core/Attributes/EnumDisplayNameAttribute.cs +15 -15
  241. package/Runtime/Core/Attributes/EnumDisplayNameAttribute.cs.meta +2 -2
  242. package/Runtime/Core/Attributes/IRelationalComponentAssigner.cs +36 -0
  243. package/Runtime/Core/Attributes/IRelationalComponentAssigner.cs.meta +11 -0
  244. package/Runtime/Core/Attributes/IntDropdownAttribute.cs +14 -14
  245. package/Runtime/Core/Attributes/IntDropdownAttribute.cs.meta +2 -2
  246. package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
  247. package/Runtime/Core/Attributes/KSerializableAttribute.cs.meta +11 -11
  248. package/Runtime/Core/Attributes/NotNullAttribute.cs +32 -32
  249. package/Runtime/Core/Attributes/NotNullAttribute.cs.meta +11 -11
  250. package/Runtime/Core/Attributes/ParentComponentAttribute.cs +376 -0
  251. package/Runtime/Core/Attributes/{ParentComponent.cs.meta → ParentComponentAttribute.cs.meta} +11 -11
  252. package/Runtime/Core/Attributes/RelationalComponentAssigner.cs +107 -0
  253. package/Runtime/Core/Attributes/RelationalComponentAssigner.cs.meta +11 -0
  254. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +61 -14
  255. package/Runtime/Core/Attributes/RelationalComponentExtensions.cs.meta +11 -11
  256. package/Runtime/Core/Attributes/RelationalComponentInitializer.cs +331 -0
  257. package/Runtime/Core/Attributes/RelationalComponentInitializer.cs.meta +11 -0
  258. package/Runtime/Core/Attributes/ScriptableSingletonPathAttribute.cs +15 -15
  259. package/Runtime/Core/Attributes/ScriptableSingletonPathAttribute.cs.meta +2 -2
  260. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +264 -137
  261. package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
  262. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +115 -106
  263. package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
  264. package/Runtime/Core/Attributes/ValueHelpers.cs +10 -0
  265. package/Runtime/Core/Attributes/ValueHelpers.cs.meta +3 -0
  266. package/Runtime/Core/Attributes/WShowIfAttribute.cs +24 -24
  267. package/Runtime/Core/Attributes/WShowIfAttribute.cs.meta +2 -2
  268. package/Runtime/Core/Attributes.meta +8 -8
  269. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +192 -92
  270. package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs.meta +11 -11
  271. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +268 -185
  272. package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs.meta +11 -11
  273. package/Runtime/Core/DataStructure/Adapters/KGuid.cs +360 -305
  274. package/Runtime/Core/DataStructure/Adapters/KGuid.cs.meta +11 -11
  275. package/Runtime/Core/DataStructure/Adapters/KVector2.cs +146 -80
  276. package/Runtime/Core/DataStructure/Adapters/KVector2.cs.meta +11 -11
  277. package/Runtime/Core/DataStructure/Adapters.meta +8 -8
  278. package/Runtime/Core/DataStructure/BitSet.cs +626 -0
  279. package/Runtime/Core/DataStructure/BitSet.cs.meta +11 -0
  280. package/Runtime/Core/DataStructure/BoundingBox3D.cs +405 -0
  281. package/Runtime/Core/DataStructure/BoundingBox3D.cs.meta +11 -0
  282. package/Runtime/Core/DataStructure/Circle.cs +203 -50
  283. package/Runtime/Core/DataStructure/Circle.cs.meta +11 -11
  284. package/Runtime/Core/DataStructure/CyclicBuffer.cs +489 -266
  285. package/Runtime/Core/DataStructure/CyclicBuffer.cs.meta +11 -11
  286. package/Runtime/Core/DataStructure/Deque.cs +561 -0
  287. package/Runtime/Core/DataStructure/Deque.cs.meta +11 -0
  288. package/Runtime/Core/DataStructure/DisjointSet.cs +483 -0
  289. package/Runtime/Core/DataStructure/DisjointSet.cs.meta +11 -0
  290. package/Runtime/Core/DataStructure/Heap.cs +514 -0
  291. package/Runtime/Core/DataStructure/Heap.cs.meta +11 -0
  292. package/Runtime/Core/DataStructure/{ISpatialTree.cs → ISpatialTree2D.cs} +25 -21
  293. package/Runtime/Core/DataStructure/ISpatialTree2D.cs.meta +11 -0
  294. package/Runtime/Core/DataStructure/ISpatialTree3D.cs +33 -0
  295. package/Runtime/Core/DataStructure/ISpatialTree3D.cs.meta +11 -0
  296. package/Runtime/Core/DataStructure/ImmutableBitSet.cs +398 -0
  297. package/Runtime/Core/DataStructure/ImmutableBitSet.cs.meta +3 -0
  298. package/Runtime/Core/DataStructure/KDTree2D.cs +852 -0
  299. package/Runtime/Core/DataStructure/KDTree2D.cs.meta +11 -0
  300. package/Runtime/Core/DataStructure/KDTree3D.cs +911 -0
  301. package/Runtime/Core/DataStructure/KDTree3D.cs.meta +11 -0
  302. package/Runtime/Core/DataStructure/OctTree3D.cs +983 -0
  303. package/Runtime/Core/DataStructure/OctTree3D.cs.meta +11 -0
  304. package/Runtime/Core/DataStructure/PriorityQueue.cs +194 -0
  305. package/Runtime/Core/DataStructure/PriorityQueue.cs.meta +11 -0
  306. package/Runtime/Core/DataStructure/QuadTree2D.cs +722 -0
  307. package/Runtime/Core/DataStructure/QuadTree2D.cs.meta +11 -0
  308. package/Runtime/Core/DataStructure/RTree2D.cs +704 -0
  309. package/Runtime/Core/DataStructure/{RTree.cs.meta → RTree2D.cs.meta} +11 -11
  310. package/Runtime/Core/DataStructure/RTree3D.cs +775 -0
  311. package/Runtime/Core/DataStructure/RTree3D.cs.meta +11 -0
  312. package/Runtime/Core/DataStructure/SparseSet.cs +597 -0
  313. package/Runtime/Core/DataStructure/SparseSet.cs.meta +11 -0
  314. package/Runtime/Core/DataStructure/SpatialHash2D.cs +312 -0
  315. package/Runtime/Core/DataStructure/SpatialHash2D.cs.meta +3 -0
  316. package/Runtime/Core/DataStructure/SpatialHash3D.cs +341 -0
  317. package/Runtime/Core/DataStructure/SpatialHash3D.cs.meta +11 -0
  318. package/Runtime/Core/DataStructure/Sphere.cs +264 -0
  319. package/Runtime/Core/DataStructure/Sphere.cs.meta +11 -0
  320. package/Runtime/Core/DataStructure/StringWrapper.cs +115 -91
  321. package/Runtime/Core/DataStructure/StringWrapper.cs.meta +11 -11
  322. package/Runtime/Core/DataStructure/TimedCache.cs +88 -66
  323. package/Runtime/Core/DataStructure/TimedCache.cs.meta +11 -11
  324. package/Runtime/Core/DataStructure/Trie.cs +660 -359
  325. package/Runtime/Core/DataStructure/Trie.cs.meta +2 -2
  326. package/Runtime/Core/DataStructure.meta +8 -8
  327. package/Runtime/Core/Extension/AnimatorExtensions.cs +40 -25
  328. package/Runtime/Core/Extension/AnimatorExtensions.cs.meta +11 -11
  329. package/Runtime/Core/Extension/AsyncOperationExtensions.cs +404 -110
  330. package/Runtime/Core/Extension/AsyncOperationExtensions.cs.meta +2 -2
  331. package/Runtime/Core/Extension/CircleExtensions.cs +125 -25
  332. package/Runtime/Core/Extension/CircleExtensions.cs.meta +11 -11
  333. package/Runtime/Core/Extension/ColorExtensions.cs +983 -644
  334. package/Runtime/Core/Extension/ColorExtensions.cs.meta +11 -11
  335. package/Runtime/Core/Extension/DictionaryExtensions.cs +606 -299
  336. package/Runtime/Core/Extension/DictionaryExtensions.cs.meta +11 -11
  337. package/Runtime/Core/Extension/DirectionExtensions.cs +377 -213
  338. package/Runtime/Core/Extension/DirectionExtensions.cs.meta +11 -11
  339. package/Runtime/Core/Extension/EnumExtensions.cs +535 -137
  340. package/Runtime/Core/Extension/EnumExtensions.cs.meta +2 -2
  341. package/Runtime/Core/Extension/IEnumerableExtensions.cs +341 -124
  342. package/Runtime/Core/Extension/IEnumerableExtensions.cs.meta +11 -11
  343. package/Runtime/Core/Extension/IListExtensions.cs +767 -248
  344. package/Runtime/Core/Extension/IListExtensions.cs.meta +11 -11
  345. package/Runtime/Core/Extension/IReadonlyListExtensions.cs +687 -37
  346. package/Runtime/Core/Extension/IReadonlyListExtensions.cs.meta +2 -2
  347. package/Runtime/Core/Extension/ProtoEqualityExtensions.cs +292 -0
  348. package/Runtime/Core/Extension/ProtoEqualityExtensions.cs.meta +3 -0
  349. package/Runtime/Core/Extension/RandomExtensions.cs +938 -109
  350. package/Runtime/Core/Extension/RandomExtensions.cs.meta +11 -11
  351. package/Runtime/Core/Extension/StringExtensions.cs +1635 -239
  352. package/Runtime/Core/Extension/StringExtensions.cs.meta +11 -11
  353. package/Runtime/Core/Extension/UnityExtensions.cs +4555 -1689
  354. package/Runtime/Core/Extension/UnityExtensions.cs.meta +11 -11
  355. package/Runtime/Core/Extension/WallstopStudiosLogger.cs +271 -245
  356. package/Runtime/Core/Extension/WallstopStudiosLogger.cs.meta +11 -11
  357. package/Runtime/Core/Extension.meta +8 -8
  358. package/Runtime/Core/Helper/ArrayConverter.cs +73 -39
  359. package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
  360. package/Runtime/Core/Helper/AssignUtilities.cs +33 -14
  361. package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
  362. package/Runtime/Core/Helper/DirectoryHelper.cs +210 -196
  363. package/Runtime/Core/Helper/DirectoryHelper.cs.meta +2 -2
  364. package/Runtime/Core/Helper/Enumerables.cs +51 -17
  365. package/Runtime/Core/Helper/Enumerables.cs.meta +11 -11
  366. package/Runtime/Core/Helper/FileHelper.cs +97 -77
  367. package/Runtime/Core/Helper/FileHelper.cs.meta +2 -2
  368. package/Runtime/Core/Helper/FormattingHelpers.cs +49 -38
  369. package/Runtime/Core/Helper/FormattingHelpers.cs.meta +2 -2
  370. package/Runtime/Core/Helper/FuncBasedComparer.cs +29 -0
  371. package/Runtime/Core/Helper/FuncBasedComparer.cs.meta +3 -0
  372. package/Runtime/Core/Helper/Geometry.cs +65 -43
  373. package/Runtime/Core/Helper/Geometry.cs.meta +11 -11
  374. package/Runtime/Core/Helper/Helpers.cs +1271 -831
  375. package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
  376. package/Runtime/Core/Helper/IterationHelpers.cs +83 -32
  377. package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
  378. package/Runtime/Core/Helper/LifetimeHelpers.cs +20 -13
  379. package/Runtime/Core/Helper/LifetimeHelpers.cs.meta +11 -11
  380. package/Runtime/Core/Helper/LineHelper.cs +259 -194
  381. package/Runtime/Core/Helper/LineHelper.cs.meta +2 -2
  382. package/Runtime/Core/Helper/Logging/UnityLogTagFormatter.cs +549 -539
  383. package/Runtime/Core/Helper/Logging/UnityLogTagFormatter.cs.meta +2 -2
  384. package/Runtime/Core/Helper/Logging.meta +2 -2
  385. package/Runtime/Core/Helper/Objects.cs +477 -769
  386. package/Runtime/Core/Helper/Objects.cs.meta +11 -11
  387. package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
  388. package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
  389. package/Runtime/Core/Helper/Partials/MathHelpers.cs +45 -30
  390. package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
  391. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +506 -400
  392. package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
  393. package/Runtime/Core/Helper/Partials/TransformHelpers.cs +393 -377
  394. package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
  395. package/Runtime/Core/Helper/Partials.meta +2 -2
  396. package/Runtime/Core/Helper/PathHelper.cs +42 -15
  397. package/Runtime/Core/Helper/PathHelper.cs.meta +2 -2
  398. package/Runtime/Core/Helper/ReflectionHelpers.cs +5287 -1963
  399. package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
  400. package/Runtime/Core/Helper/ReverseComparer.cs +33 -0
  401. package/Runtime/Core/Helper/ReverseComparer.cs.meta +3 -0
  402. package/Runtime/Core/Helper/SceneHelper.cs +251 -224
  403. package/Runtime/Core/Helper/SceneHelper.cs.meta +2 -2
  404. package/Runtime/Core/Helper/SpriteHelpers.cs +50 -41
  405. package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
  406. package/Runtime/Core/Helper/StringInList.cs +61 -35
  407. package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
  408. package/Runtime/Core/Helper/TestAssemblyHelper.cs +134 -0
  409. package/Runtime/Core/Helper/TestAssemblyHelper.cs.meta +11 -0
  410. package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs +100 -82
  411. package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs.meta +2 -2
  412. package/Runtime/Core/Helper/WallMath.cs +672 -166
  413. package/Runtime/Core/Helper/WallMath.cs.meta +11 -11
  414. package/Runtime/Core/Helper.meta +8 -8
  415. package/Runtime/Core/Math/Line2D.cs +263 -0
  416. package/Runtime/Core/Math/Line2D.cs.meta +11 -0
  417. package/Runtime/Core/Math/Line3D.cs +452 -0
  418. package/Runtime/Core/Math/Line3D.cs.meta +11 -0
  419. package/Runtime/Core/Math/Parabola.cs +241 -47
  420. package/Runtime/Core/Math/Parabola.cs.meta +11 -11
  421. package/Runtime/Core/Math/PointPolygonCheck.cs +175 -36
  422. package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
  423. package/Runtime/Core/Math/Range.cs +157 -92
  424. package/Runtime/Core/Math/Range.cs.meta +11 -11
  425. package/Runtime/Core/Math.meta +8 -8
  426. package/Runtime/Core/Model/Direction.cs +25 -43
  427. package/Runtime/Core/Model/Direction.cs.meta +11 -11
  428. package/Runtime/Core/Model.meta +8 -8
  429. package/Runtime/Core/OneOf/FastOneOf.cs +252 -152
  430. package/Runtime/Core/OneOf/FastOneOf.cs.meta +11 -11
  431. package/Runtime/Core/OneOf/FastOneOf2.cs +198 -0
  432. package/Runtime/Core/OneOf/FastOneOf2.cs.meta +11 -0
  433. package/Runtime/Core/OneOf/FastOneOf4.cs +324 -0
  434. package/Runtime/Core/OneOf/FastOneOf4.cs.meta +11 -0
  435. package/Runtime/Core/OneOf/None.cs +30 -4
  436. package/Runtime/Core/OneOf/None.cs.meta +11 -11
  437. package/Runtime/Core/OneOf.meta +8 -8
  438. package/Runtime/Core/Random/AbstractRandom.cs +1318 -655
  439. package/Runtime/Core/Random/AbstractRandom.cs.meta +11 -11
  440. package/Runtime/Core/Random/DotNetRandom.cs +118 -54
  441. package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
  442. package/Runtime/Core/Random/IRandom.cs +203 -161
  443. package/Runtime/Core/Random/IRandom.cs.meta +11 -11
  444. package/Runtime/Core/Random/IllusionFlow.cs +171 -107
  445. package/Runtime/Core/Random/IllusionFlow.cs.meta +2 -2
  446. package/Runtime/Core/Random/LinearCongruentialGenerator.cs +90 -49
  447. package/Runtime/Core/Random/LinearCongruentialGenerator.cs.meta +2 -2
  448. package/Runtime/Core/Random/NativePcgRandom.cs +139 -97
  449. package/Runtime/Core/Random/NativePcgRandom.cs.meta +11 -11
  450. package/Runtime/Core/Random/PRNG.cs +21 -7
  451. package/Runtime/Core/Random/PRNG.cs.meta +2 -2
  452. package/Runtime/Core/Random/PcgRandom.cs +243 -149
  453. package/Runtime/Core/Random/PcgRandom.cs.meta +11 -11
  454. package/Runtime/Core/Random/PerlinNoise.cs +369 -369
  455. package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
  456. package/Runtime/Core/Random/RandomComparer.cs +34 -0
  457. package/Runtime/Core/Random/RandomComparer.cs.meta +3 -0
  458. package/Runtime/Core/Random/RandomState.cs +206 -131
  459. package/Runtime/Core/Random/RandomState.cs.meta +11 -11
  460. package/Runtime/Core/Random/RandomUtilities.cs +55 -26
  461. package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
  462. package/Runtime/Core/Random/RomuDuo.cs +171 -116
  463. package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
  464. package/Runtime/Core/Random/SplitMix64.cs +134 -94
  465. package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
  466. package/Runtime/Core/Random/SquirrelRandom.cs +127 -84
  467. package/Runtime/Core/Random/SquirrelRandom.cs.meta +11 -11
  468. package/Runtime/Core/Random/SystemRandom.cs +203 -162
  469. package/Runtime/Core/Random/SystemRandom.cs.meta +11 -11
  470. package/Runtime/Core/Random/ThreadLocalRandom.cs +25 -12
  471. package/Runtime/Core/Random/ThreadLocalRandom.cs.meta +11 -11
  472. package/Runtime/Core/Random/UnityRandom.cs +109 -57
  473. package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
  474. package/Runtime/Core/Random/WyRandom.cs +158 -121
  475. package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
  476. package/Runtime/Core/Random/XorShiftRandom.cs +106 -52
  477. package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
  478. package/Runtime/Core/Random/XoroShiroRandom.cs +184 -119
  479. package/Runtime/Core/Random/XoroShiroRandom.cs.meta +2 -2
  480. package/Runtime/Core/Random.meta +8 -8
  481. package/Runtime/Core/Serialization/JsonConverters/AnimationCurveConverter.cs +248 -0
  482. package/Runtime/Core/Serialization/JsonConverters/AnimationCurveConverter.cs.meta +11 -0
  483. package/Runtime/Core/Serialization/JsonConverters/BitSetConverter.cs +119 -0
  484. package/Runtime/Core/Serialization/JsonConverters/BitSetConverter.cs.meta +11 -0
  485. package/Runtime/Core/Serialization/JsonConverters/BoundingSphereConverter.cs +74 -0
  486. package/Runtime/Core/Serialization/JsonConverters/BoundingSphereConverter.cs.meta +11 -0
  487. package/Runtime/Core/Serialization/JsonConverters/BoundsConverter.cs +132 -0
  488. package/Runtime/Core/Serialization/JsonConverters/BoundsConverter.cs.meta +11 -0
  489. package/Runtime/Core/Serialization/JsonConverters/BoundsIntConverter.cs +135 -0
  490. package/Runtime/Core/Serialization/JsonConverters/BoundsIntConverter.cs.meta +11 -0
  491. package/Runtime/Core/Serialization/JsonConverters/Color32Converter.cs +98 -0
  492. package/Runtime/Core/Serialization/JsonConverters/Color32Converter.cs.meta +11 -0
  493. package/Runtime/Core/Serialization/JsonConverters/ColorBlockConverter.cs +123 -0
  494. package/Runtime/Core/Serialization/JsonConverters/ColorBlockConverter.cs.meta +11 -0
  495. package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs +88 -88
  496. package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs.meta +2 -2
  497. package/Runtime/Core/Serialization/JsonConverters/CyclicBufferConverterFactory.cs +112 -0
  498. package/Runtime/Core/Serialization/JsonConverters/CyclicBufferConverterFactory.cs.meta +11 -0
  499. package/Runtime/Core/Serialization/JsonConverters/DequeConverterFactory.cs +62 -0
  500. package/Runtime/Core/Serialization/JsonConverters/DequeConverterFactory.cs.meta +11 -0
  501. package/Runtime/Core/Serialization/JsonConverters/FastVector2IntConverter.cs +72 -0
  502. package/Runtime/Core/Serialization/JsonConverters/FastVector2IntConverter.cs.meta +11 -0
  503. package/Runtime/Core/Serialization/JsonConverters/FastVector3IntConverter.cs +80 -0
  504. package/Runtime/Core/Serialization/JsonConverters/FastVector3IntConverter.cs.meta +11 -0
  505. package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs +36 -36
  506. package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs.meta +2 -2
  507. package/Runtime/Core/Serialization/JsonConverters/GradientConverter.cs +245 -0
  508. package/Runtime/Core/Serialization/JsonConverters/GradientConverter.cs.meta +11 -0
  509. package/Runtime/Core/Serialization/JsonConverters/Hash128Converter.cs +92 -0
  510. package/Runtime/Core/Serialization/JsonConverters/Hash128Converter.cs.meta +11 -0
  511. package/Runtime/Core/Serialization/JsonConverters/ImmutableBitSetConverter.cs +119 -0
  512. package/Runtime/Core/Serialization/JsonConverters/ImmutableBitSetConverter.cs.meta +11 -0
  513. package/Runtime/Core/Serialization/JsonConverters/KVector2Converter.cs +72 -0
  514. package/Runtime/Core/Serialization/JsonConverters/KVector2Converter.cs.meta +11 -0
  515. package/Runtime/Core/Serialization/JsonConverters/LayerMaskConverter.cs +95 -0
  516. package/Runtime/Core/Serialization/JsonConverters/LayerMaskConverter.cs.meta +11 -0
  517. package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs +237 -218
  518. package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs.meta +2 -2
  519. package/Runtime/Core/Serialization/JsonConverters/MinMaxCurveConverter.cs +142 -0
  520. package/Runtime/Core/Serialization/JsonConverters/MinMaxCurveConverter.cs.meta +11 -0
  521. package/Runtime/Core/Serialization/JsonConverters/MinMaxGradientConverter.cs +135 -0
  522. package/Runtime/Core/Serialization/JsonConverters/MinMaxGradientConverter.cs.meta +11 -0
  523. package/Runtime/Core/Serialization/JsonConverters/PlaneConverter.cs +79 -0
  524. package/Runtime/Core/Serialization/JsonConverters/PlaneConverter.cs.meta +11 -0
  525. package/Runtime/Core/Serialization/JsonConverters/PoseConverter.cs +76 -0
  526. package/Runtime/Core/Serialization/JsonConverters/PoseConverter.cs.meta +11 -0
  527. package/Runtime/Core/Serialization/JsonConverters/QuaternionConverter.cs +88 -0
  528. package/Runtime/Core/Serialization/JsonConverters/QuaternionConverter.cs.meta +11 -0
  529. package/Runtime/Core/Serialization/JsonConverters/RangeConverterFactory.cs +106 -0
  530. package/Runtime/Core/Serialization/JsonConverters/RangeConverterFactory.cs.meta +11 -0
  531. package/Runtime/Core/Serialization/JsonConverters/RangeIntConverter.cs +71 -0
  532. package/Runtime/Core/Serialization/JsonConverters/RangeIntConverter.cs.meta +11 -0
  533. package/Runtime/Core/Serialization/JsonConverters/Ray2DConverter.cs +80 -0
  534. package/Runtime/Core/Serialization/JsonConverters/Ray2DConverter.cs.meta +11 -0
  535. package/Runtime/Core/Serialization/JsonConverters/RayConverter.cs +76 -0
  536. package/Runtime/Core/Serialization/JsonConverters/RayConverter.cs.meta +11 -0
  537. package/Runtime/Core/Serialization/JsonConverters/RaycastHitConverter.cs +115 -0
  538. package/Runtime/Core/Serialization/JsonConverters/RaycastHitConverter.cs.meta +11 -0
  539. package/Runtime/Core/Serialization/JsonConverters/RectConverter.cs +84 -0
  540. package/Runtime/Core/Serialization/JsonConverters/RectConverter.cs.meta +11 -0
  541. package/Runtime/Core/Serialization/JsonConverters/RectIntConverter.cs +88 -0
  542. package/Runtime/Core/Serialization/JsonConverters/RectIntConverter.cs.meta +11 -0
  543. package/Runtime/Core/Serialization/JsonConverters/RectOffsetConverter.cs +87 -0
  544. package/Runtime/Core/Serialization/JsonConverters/RectOffsetConverter.cs.meta +11 -0
  545. package/Runtime/Core/Serialization/JsonConverters/RenderTextureDescriptorConverter.cs +264 -0
  546. package/Runtime/Core/Serialization/JsonConverters/RenderTextureDescriptorConverter.cs.meta +11 -0
  547. package/Runtime/Core/Serialization/JsonConverters/ResolutionConverter.cs +158 -0
  548. package/Runtime/Core/Serialization/JsonConverters/ResolutionConverter.cs.meta +11 -0
  549. package/Runtime/Core/Serialization/JsonConverters/SceneConverter.cs +103 -0
  550. package/Runtime/Core/Serialization/JsonConverters/SceneConverter.cs.meta +11 -0
  551. package/Runtime/Core/Serialization/JsonConverters/SphericalHarmonicsL2Converter.cs +121 -0
  552. package/Runtime/Core/Serialization/JsonConverters/SphericalHarmonicsL2Converter.cs.meta +11 -0
  553. package/Runtime/Core/Serialization/JsonConverters/TouchConverter.cs +54 -0
  554. package/Runtime/Core/Serialization/JsonConverters/TouchConverter.cs.meta +11 -0
  555. package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs +30 -28
  556. package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs.meta +2 -2
  557. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +72 -74
  558. package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs.meta +11 -11
  559. package/Runtime/Core/Serialization/JsonConverters/Vector2IntConverter.cs +72 -0
  560. package/Runtime/Core/Serialization/JsonConverters/Vector2IntConverter.cs.meta +11 -0
  561. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +80 -81
  562. package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs.meta +11 -11
  563. package/Runtime/Core/Serialization/JsonConverters/Vector3IntConverter.cs +80 -0
  564. package/Runtime/Core/Serialization/JsonConverters/Vector3IntConverter.cs.meta +11 -0
  565. package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs +88 -88
  566. package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs.meta +2 -2
  567. package/Runtime/Core/Serialization/JsonConverters.meta +8 -8
  568. package/Runtime/Core/Serialization/ProtobufUnitySurrogates.cs +383 -0
  569. package/Runtime/Core/Serialization/ProtobufUnitySurrogates.cs.meta +11 -0
  570. package/Runtime/Core/Serialization/Serializer.cs +2020 -195
  571. package/Runtime/Core/Serialization/Serializer.cs.meta +11 -11
  572. package/Runtime/Core/Serialization.meta +8 -8
  573. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +228 -228
  574. package/Runtime/Core/Threading/SingleThreadedThreadPool.cs.meta +11 -11
  575. package/Runtime/Core/Threading.meta +8 -8
  576. package/Runtime/Core.meta +8 -8
  577. package/Runtime/Integrations/VContainer/ObjectResolverRelationalExtensions.cs +185 -0
  578. package/Runtime/Integrations/VContainer/ObjectResolverRelationalExtensions.cs.meta +11 -0
  579. package/Runtime/Integrations/VContainer/RelationalComponentEntryPoint.cs +109 -0
  580. package/Runtime/Integrations/VContainer/RelationalComponentEntryPoint.cs.meta +11 -0
  581. package/Runtime/Integrations/VContainer/RelationalComponentsBuilderExtensions.cs +78 -0
  582. package/Runtime/Integrations/VContainer/RelationalComponentsBuilderExtensions.cs.meta +11 -0
  583. package/Runtime/Integrations/VContainer/RelationalSceneAssignmentOptions.cs +83 -0
  584. package/Runtime/Integrations/VContainer/RelationalSceneAssignmentOptions.cs.meta +11 -0
  585. package/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Integration.VContainer.asmdef +30 -0
  586. package/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Integration.VContainer.asmdef.meta +7 -0
  587. package/Runtime/Integrations/VContainer.meta +8 -0
  588. package/Runtime/Integrations/Zenject/DiContainerRelationalExtensions.cs +180 -0
  589. package/Runtime/Integrations/Zenject/DiContainerRelationalExtensions.cs.meta +11 -0
  590. package/Runtime/Integrations/Zenject/RelationalComponentSceneInitializer.cs +105 -0
  591. package/Runtime/Integrations/Zenject/RelationalComponentSceneInitializer.cs.meta +11 -0
  592. package/Runtime/Integrations/Zenject/RelationalComponentsInstaller.cs +72 -0
  593. package/Runtime/Integrations/Zenject/RelationalComponentsInstaller.cs.meta +11 -0
  594. package/Runtime/Integrations/Zenject/RelationalSceneAssignmentOptions.cs +87 -0
  595. package/Runtime/Integrations/Zenject/RelationalSceneAssignmentOptions.cs.meta +11 -0
  596. package/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Integration.Zenject.asmdef +30 -0
  597. package/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Integration.Zenject.asmdef.meta +7 -0
  598. package/Runtime/Integrations/Zenject.meta +8 -0
  599. package/Runtime/Integrations.meta +8 -0
  600. package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
  601. package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
  602. package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
  603. package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
  604. package/Runtime/Protobuf-Net.meta +8 -8
  605. package/Runtime/Tags/AlwaysIncludeInAttributeMetadataCacheAttribute.cs +11 -0
  606. package/Runtime/Tags/AlwaysIncludeInAttributeMetadataCacheAttribute.cs.meta +11 -0
  607. package/Runtime/Tags/Attribute.cs +399 -205
  608. package/Runtime/Tags/Attribute.cs.meta +2 -2
  609. package/Runtime/Tags/AttributeEffect.cs +372 -281
  610. package/Runtime/Tags/AttributeEffect.cs.meta +2 -2
  611. package/Runtime/Tags/AttributeMetadataCache.cs +503 -0
  612. package/Runtime/Tags/AttributeMetadataCache.cs.meta +11 -0
  613. package/Runtime/Tags/AttributeMetadataFilters.cs +108 -0
  614. package/Runtime/Tags/AttributeMetadataFilters.cs.meta +11 -0
  615. package/Runtime/Tags/AttributeModification.cs +132 -48
  616. package/Runtime/Tags/AttributeModification.cs.meta +2 -2
  617. package/Runtime/Tags/AttributeUtilities.cs +376 -209
  618. package/Runtime/Tags/AttributeUtilities.cs.meta +2 -2
  619. package/Runtime/Tags/AttributesComponent.cs +237 -163
  620. package/Runtime/Tags/AttributesComponent.cs.meta +2 -2
  621. package/Runtime/Tags/CollisionSenses.cs +117 -91
  622. package/Runtime/Tags/CollisionSenses.cs.meta +2 -2
  623. package/Runtime/Tags/CosmeticEffectComponent.cs +112 -50
  624. package/Runtime/Tags/CosmeticEffectComponent.cs.meta +2 -2
  625. package/Runtime/Tags/CosmeticEffectData.cs +109 -63
  626. package/Runtime/Tags/CosmeticEffectData.cs.meta +2 -2
  627. package/Runtime/Tags/EffectHandle.cs +150 -65
  628. package/Runtime/Tags/EffectHandle.cs.meta +2 -2
  629. package/Runtime/Tags/EffectHandler.cs +470 -393
  630. package/Runtime/Tags/EffectHandler.cs.meta +2 -2
  631. package/Runtime/Tags/ModificationAction.cs +60 -9
  632. package/Runtime/Tags/ModificationAction.cs.meta +2 -2
  633. package/Runtime/Tags/ModifierDurationType.cs +71 -13
  634. package/Runtime/Tags/ModifierDurationType.cs.meta +2 -2
  635. package/Runtime/Tags/TagHandler.cs +373 -158
  636. package/Runtime/Tags/TagHandler.cs.meta +2 -2
  637. package/Runtime/Tags.meta +2 -2
  638. package/Runtime/Utils/AnimationEventEqualityComparer.cs +198 -161
  639. package/Runtime/Utils/AnimationEventEqualityComparer.cs.meta +11 -11
  640. package/Runtime/Utils/AnimatorEnumStateMachine.cs +110 -88
  641. package/Runtime/Utils/AnimatorEnumStateMachine.cs.meta +11 -11
  642. package/Runtime/Utils/Ascii85.cs +132 -115
  643. package/Runtime/Utils/Ascii85.cs.meta +2 -2
  644. package/Runtime/Utils/Buffers.cs +1151 -550
  645. package/Runtime/Utils/Buffers.cs.meta +11 -11
  646. package/Runtime/Utils/CenterPointOffset.cs +35 -30
  647. package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
  648. package/Runtime/Utils/ChildSpawner.cs +250 -157
  649. package/Runtime/Utils/ChildSpawner.cs.meta +2 -2
  650. package/Runtime/Utils/CircleLineRenderer.cs +142 -142
  651. package/Runtime/Utils/CircleLineRenderer.cs.meta +11 -11
  652. package/Runtime/Utils/CollisionProxy.cs +48 -48
  653. package/Runtime/Utils/CollisionProxy.cs.meta +2 -2
  654. package/Runtime/Utils/CoroutineHandler.cs +4 -4
  655. package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
  656. package/Runtime/Utils/DeferredDisposalResult.cs +20 -23
  657. package/Runtime/Utils/DeferredDisposalResult.cs.meta +2 -2
  658. package/Runtime/Utils/LZMA.cs +276 -53
  659. package/Runtime/Utils/LZMA.cs.meta +2 -2
  660. package/Runtime/Utils/MatchColliderToSprite.cs +104 -104
  661. package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
  662. package/Runtime/Utils/MatchTransform.cs +99 -82
  663. package/Runtime/Utils/MatchTransform.cs.meta +2 -2
  664. package/Runtime/Utils/Oscillator.cs +27 -27
  665. package/Runtime/Utils/Oscillator.cs.meta +11 -11
  666. package/Runtime/Utils/PolygonCollider2DOptimizer.cs +104 -83
  667. package/Runtime/Utils/PolygonCollider2DOptimizer.cs.meta +2 -2
  668. package/Runtime/Utils/RuntimeSingleton.cs +139 -89
  669. package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
  670. package/Runtime/Utils/ScriptableObjectSingleton.cs +226 -85
  671. package/Runtime/Utils/ScriptableObjectSingleton.cs.meta +2 -2
  672. package/Runtime/Utils/SerializedStringComparer.cs +107 -107
  673. package/Runtime/Utils/SerializedStringComparer.cs.meta +2 -2
  674. package/Runtime/Utils/SetTextureImportData.cs +69 -69
  675. package/Runtime/Utils/SetTextureImportData.cs.meta +11 -11
  676. package/Runtime/Utils/SevenZip/Common/CRC.cs +70 -70
  677. package/Runtime/Utils/SevenZip/Common/CRC.cs.meta +11 -11
  678. package/Runtime/Utils/SevenZip/Common/InBuffer.cs +84 -84
  679. package/Runtime/Utils/SevenZip/Common/InBuffer.cs.meta +11 -11
  680. package/Runtime/Utils/SevenZip/Common/OutBuffer.cs +70 -70
  681. package/Runtime/Utils/SevenZip/Common/OutBuffer.cs.meta +11 -11
  682. package/Runtime/Utils/SevenZip/Common.meta +2 -2
  683. package/Runtime/Utils/SevenZip/Compress/LZ/IMatchFinder.cs +28 -28
  684. package/Runtime/Utils/SevenZip/Compress/LZ/IMatchFinder.cs.meta +11 -11
  685. package/Runtime/Utils/SevenZip/Compress/LZ/LzBinTree.cs +454 -454
  686. package/Runtime/Utils/SevenZip/Compress/LZ/LzBinTree.cs.meta +11 -11
  687. package/Runtime/Utils/SevenZip/Compress/LZ/LzInWindow.cs +179 -179
  688. package/Runtime/Utils/SevenZip/Compress/LZ/LzInWindow.cs.meta +11 -11
  689. package/Runtime/Utils/SevenZip/Compress/LZ/LzOutWindow.cs +137 -137
  690. package/Runtime/Utils/SevenZip/Compress/LZ/LzOutWindow.cs.meta +11 -11
  691. package/Runtime/Utils/SevenZip/Compress/LZ.meta +8 -8
  692. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaBase.cs +110 -110
  693. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaBase.cs.meta +11 -11
  694. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaDecoder.cs +525 -527
  695. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaDecoder.cs.meta +11 -11
  696. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaEncoder.cs +1891 -1904
  697. package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaEncoder.cs.meta +11 -11
  698. package/Runtime/Utils/SevenZip/Compress/LZMA.meta +8 -8
  699. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoder.cs +242 -242
  700. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoder.cs.meta +11 -11
  701. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBit.cs +146 -149
  702. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBit.cs.meta +11 -11
  703. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs +177 -177
  704. package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs.meta +11 -11
  705. package/Runtime/Utils/SevenZip/Compress/RangeCoder.meta +8 -8
  706. package/Runtime/Utils/SevenZip/Compress.meta +8 -8
  707. package/Runtime/Utils/SevenZip/ICoder.cs +177 -177
  708. package/Runtime/Utils/SevenZip/ICoder.cs.meta +11 -11
  709. package/Runtime/Utils/SevenZip.meta +2 -2
  710. package/Runtime/Utils/SpriteRendererMetadata.cs +346 -370
  711. package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
  712. package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
  713. package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
  714. package/Runtime/Utils/StartTracker.cs +15 -15
  715. package/Runtime/Utils/StartTracker.cs.meta +2 -2
  716. package/Runtime/Utils/TextureScale.cs +356 -179
  717. package/Runtime/Utils/TextureScale.cs.meta +2 -2
  718. package/Runtime/Utils/TypeNameSorter.cs +17 -17
  719. package/Runtime/Utils/TypeNameSorter.cs.meta +2 -2
  720. package/Runtime/Utils/UnityObjectNameComparer.cs +89 -89
  721. package/Runtime/Utils/UnityObjectNameComparer.cs.meta +2 -2
  722. package/Runtime/Utils.meta +8 -8
  723. package/Runtime/Visuals/AnimatedSpriteLayer.cs +217 -130
  724. package/Runtime/Visuals/AnimatedSpriteLayer.cs.meta +2 -2
  725. package/Runtime/Visuals/UGUI/EnhancedImage.cs +218 -85
  726. package/Runtime/Visuals/UGUI/EnhancedImage.cs.meta +2 -2
  727. package/Runtime/Visuals/UGUI.meta +2 -2
  728. package/Runtime/Visuals/UIToolkit/LayeredImage.cs +781 -484
  729. package/Runtime/Visuals/UIToolkit/LayeredImage.cs.meta +2 -2
  730. package/Runtime/Visuals/UIToolkit/MultiFileSelectorElement.cs +945 -322
  731. package/Runtime/Visuals/UIToolkit/MultiFileSelectorElement.cs.meta +2 -2
  732. package/Runtime/Visuals/UIToolkit.meta +2 -2
  733. package/Runtime/Visuals.meta +2 -2
  734. package/Runtime/WallstopStudios.UnityHelpers.asmdef +22 -14
  735. package/Runtime/WallstopStudios.UnityHelpers.asmdef.meta +7 -7
  736. package/Runtime.meta +8 -8
  737. package/SERIALIZATION.md +648 -0
  738. package/SERIALIZATION.md.meta +7 -0
  739. package/SINGLETONS.md +427 -0
  740. package/SINGLETONS.md.meta +7 -0
  741. package/SPATIAL_TREES_2D_GUIDE.md +261 -0
  742. package/SPATIAL_TREES_2D_GUIDE.md.meta +7 -0
  743. package/SPATIAL_TREES_3D_GUIDE.md +214 -0
  744. package/SPATIAL_TREES_3D_GUIDE.md.meta +7 -0
  745. package/SPATIAL_TREE_2D_PERFORMANCE.md +238 -0
  746. package/SPATIAL_TREE_2D_PERFORMANCE.md.meta +7 -0
  747. package/SPATIAL_TREE_3D_PERFORMANCE.md +240 -0
  748. package/SPATIAL_TREE_3D_PERFORMANCE.md.meta +7 -0
  749. package/SPATIAL_TREE_SEMANTICS.md +106 -0
  750. package/SPATIAL_TREE_SEMANTICS.md.meta +7 -0
  751. package/Samples~/DI - VContainer/Prefabs/RelationalConsumer.prefab +77 -0
  752. package/Samples~/DI - VContainer/Prefabs/RelationalConsumer.prefab.meta +8 -0
  753. package/Samples~/DI - VContainer/Prefabs/Spawner.prefab +47 -0
  754. package/Samples~/DI - VContainer/Prefabs/Spawner.prefab.meta +8 -0
  755. package/Samples~/DI - VContainer/Prefabs.meta +9 -0
  756. package/Samples~/DI - VContainer/README.md +334 -0
  757. package/Samples~/DI - VContainer/README.md.meta +8 -0
  758. package/Samples~/DI - VContainer/Scenes/VContainer_Sample.unity +120 -0
  759. package/Samples~/DI - VContainer/Scenes/VContainer_Sample.unity.meta +8 -0
  760. package/Samples~/DI - VContainer/Scenes.meta +9 -0
  761. package/Samples~/DI - VContainer/Scripts/GameLifetimeScope.cs +24 -0
  762. package/Samples~/DI - VContainer/Scripts/GameLifetimeScope.cs.meta +12 -0
  763. package/Samples~/DI - VContainer/Scripts/RelationalConsumer.cs +21 -0
  764. package/Samples~/DI - VContainer/Scripts/RelationalConsumer.cs.meta +12 -0
  765. package/Samples~/DI - VContainer/Scripts/Samples.UnityHelpers.DI.VContainer.asmdef +37 -0
  766. package/Samples~/DI - VContainer/Scripts/Samples.UnityHelpers.DI.VContainer.asmdef.meta +8 -0
  767. package/Samples~/DI - VContainer/Scripts/Spawner.cs +21 -0
  768. package/Samples~/DI - VContainer/Scripts/Spawner.cs.meta +12 -0
  769. package/Samples~/DI - VContainer/Scripts.meta +9 -0
  770. package/Samples~/DI - VContainer.meta +9 -0
  771. package/Samples~/DI - Zenject/Prefabs/RelationalConsumer.prefab +77 -0
  772. package/Samples~/DI - Zenject/Prefabs/RelationalConsumer.prefab.meta +8 -0
  773. package/Samples~/DI - Zenject/Prefabs/SpawnerZenject.prefab +47 -0
  774. package/Samples~/DI - Zenject/Prefabs/SpawnerZenject.prefab.meta +8 -0
  775. package/Samples~/DI - Zenject/Prefabs.meta +9 -0
  776. package/Samples~/DI - Zenject/README.md +389 -0
  777. package/Samples~/DI - Zenject/README.md.meta +7 -0
  778. package/Samples~/DI - Zenject/Scenes/Zenject_Sample.unity +164 -0
  779. package/Samples~/DI - Zenject/Scenes/Zenject_Sample.unity.meta +8 -0
  780. package/Samples~/DI - Zenject/Scenes.meta +9 -0
  781. package/Samples~/DI - Zenject/Scripts/RelationalConsumer.cs +19 -0
  782. package/Samples~/DI - Zenject/Scripts/RelationalConsumer.cs.meta +12 -0
  783. package/Samples~/DI - Zenject/Scripts/Samples.UnityHelpers.DI.Zenject.asmdef +36 -0
  784. package/Samples~/DI - Zenject/Scripts/Samples.UnityHelpers.DI.Zenject.asmdef.meta +8 -0
  785. package/Samples~/DI - Zenject/Scripts/SceneContextPlaceholder.cs +47 -0
  786. package/Samples~/DI - Zenject/Scripts/SceneContextPlaceholder.cs.meta +12 -0
  787. package/Samples~/DI - Zenject/Scripts/SpawnerZenject.cs +20 -0
  788. package/Samples~/DI - Zenject/Scripts/SpawnerZenject.cs.meta +12 -0
  789. package/Samples~/DI - Zenject/Scripts.meta +9 -0
  790. package/Samples~/DI - Zenject.meta +9 -0
  791. package/Samples~/Random - PRNG/README.md +12 -0
  792. package/Samples~/Random - PRNG/README.md.meta +8 -0
  793. package/Samples~/Random - PRNG/Scripts/RandomPrngDemo.cs +28 -0
  794. package/Samples~/Random - PRNG/Scripts/RandomPrngDemo.cs.meta +12 -0
  795. package/Samples~/Random - PRNG/Scripts/Samples.UnityHelpers.Random.Prng.asmdef +17 -0
  796. package/Samples~/Random - PRNG/Scripts/Samples.UnityHelpers.Random.Prng.asmdef.meta +8 -0
  797. package/Samples~/Random - PRNG/Scripts.meta +9 -0
  798. package/Samples~/Random - PRNG.meta +9 -0
  799. package/Samples~/Relational Components - Basic/README.md +19 -0
  800. package/Samples~/Relational Components - Basic/README.md.meta +8 -0
  801. package/Samples~/Relational Components - Basic/Scripts/RelationalBasicConsumer.cs +37 -0
  802. package/Samples~/Relational Components - Basic/Scripts/RelationalBasicConsumer.cs.meta +12 -0
  803. package/Samples~/Relational Components - Basic/Scripts/Samples.UnityHelpers.Relational.Basic.asmdef +17 -0
  804. package/Samples~/Relational Components - Basic/Scripts/Samples.UnityHelpers.Relational.Basic.asmdef.meta +8 -0
  805. package/Samples~/Relational Components - Basic/Scripts.meta +9 -0
  806. package/Samples~/Relational Components - Basic.meta +9 -0
  807. package/Samples~/Serialization - JSON/README.md +13 -0
  808. package/Samples~/Serialization - JSON/README.md.meta +8 -0
  809. package/Samples~/Serialization - JSON/Scripts/JsonSerializationDemo.cs +50 -0
  810. package/Samples~/Serialization - JSON/Scripts/JsonSerializationDemo.cs.meta +12 -0
  811. package/Samples~/Serialization - JSON/Scripts/Samples.UnityHelpers.Serialization.Json.asmdef +17 -0
  812. package/Samples~/Serialization - JSON/Scripts/Samples.UnityHelpers.Serialization.Json.asmdef.meta +8 -0
  813. package/Samples~/Serialization - JSON/Scripts.meta +9 -0
  814. package/Samples~/Serialization - JSON.meta +9 -0
  815. package/Samples~/Spatial Structures - 2D and 3D/README.md +13 -0
  816. package/Samples~/Spatial Structures - 2D and 3D/README.md.meta +8 -0
  817. package/Samples~/Spatial Structures - 2D and 3D/Scripts/Samples.UnityHelpers.SpatialStructures.asmdef +17 -0
  818. package/Samples~/Spatial Structures - 2D and 3D/Scripts/Samples.UnityHelpers.SpatialStructures.asmdef.meta +8 -0
  819. package/Samples~/Spatial Structures - 2D and 3D/Scripts/SpatialStructuresDemo.cs +62 -0
  820. package/Samples~/Spatial Structures - 2D and 3D/Scripts/SpatialStructuresDemo.cs.meta +12 -0
  821. package/Samples~/Spatial Structures - 2D and 3D/Scripts.meta +9 -0
  822. package/Samples~/Spatial Structures - 2D and 3D.meta +9 -0
  823. package/Samples~/UGUI - EnhancedImage/README.md +12 -0
  824. package/Samples~/UGUI - EnhancedImage/README.md.meta +8 -0
  825. package/Samples~/UGUI - EnhancedImage/Scripts/EnhancedImageDemo.cs +36 -0
  826. package/Samples~/UGUI - EnhancedImage/Scripts/EnhancedImageDemo.cs.meta +12 -0
  827. package/Samples~/UGUI - EnhancedImage/Scripts/Samples.UnityHelpers.UGUI.EnhancedImage.asmdef +17 -0
  828. package/Samples~/UGUI - EnhancedImage/Scripts/Samples.UnityHelpers.UGUI.EnhancedImage.asmdef.meta +8 -0
  829. package/Samples~/UGUI - EnhancedImage/Scripts.meta +9 -0
  830. package/Samples~/UGUI - EnhancedImage.meta +9 -0
  831. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/README.md +12 -0
  832. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/README.md.meta +8 -0
  833. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/MultiFileSelectorSampleWindow.cs +45 -0
  834. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/MultiFileSelectorSampleWindow.cs.meta +12 -0
  835. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/Samples.UnityHelpers.UIToolkit.Editor.asmdef +19 -0
  836. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/Samples.UnityHelpers.UIToolkit.Editor.asmdef.meta +8 -0
  837. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor.meta +9 -0
  838. package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts.meta +9 -0
  839. package/Samples~/UI Toolkit - MultiFile Selector (Editor).meta +9 -0
  840. package/Shaders/Materials/BackgroundMask-Material.mat +59 -59
  841. package/Shaders/Materials/BackgroundMask-Material.mat.meta +8 -8
  842. package/Shaders/Materials.meta +8 -8
  843. package/Shaders/ShaderGraph/BackgroundMask.shadergraph +1653 -1653
  844. package/Shaders/ShaderGraph/BackgroundMask.shadergraph.meta +10 -10
  845. package/Shaders/ShaderGraph/DebugDisplayValue.shadersubgraph +835 -835
  846. package/Shaders/ShaderGraph/DebugDisplayValue.shadersubgraph.meta +10 -10
  847. package/Shaders/ShaderGraph.meta +8 -8
  848. package/Shaders/Support/EnhancedImageSupport.shader +64 -0
  849. package/Shaders/Support/EnhancedImageSupport.shader.meta +9 -0
  850. package/Shaders/Support.meta +8 -0
  851. package/Shaders.meta +8 -8
  852. package/Styles/Elements/Progress/ArcedProgressBar.cs +345 -345
  853. package/Styles/Elements/Progress/ArcedProgressBar.cs.meta +2 -2
  854. package/Styles/Elements/Progress/CircularProgressBar.cs +307 -307
  855. package/Styles/Elements/Progress/CircularProgressBar.cs.meta +2 -2
  856. package/Styles/Elements/Progress/GlitchProgressBar.cs +416 -416
  857. package/Styles/Elements/Progress/GlitchProgressBar.cs.meta +2 -2
  858. package/Styles/Elements/Progress/LiquidProgressBar.cs +632 -632
  859. package/Styles/Elements/Progress/LiquidProgressBar.cs.meta +2 -2
  860. package/Styles/Elements/Progress/MarchingAntsProgressBar.cs +722 -722
  861. package/Styles/Elements/Progress/MarchingAntsProgressBar.cs.meta +2 -2
  862. package/Styles/Elements/Progress/RegularProgressBar.cs +405 -405
  863. package/Styles/Elements/Progress/RegularProgressBar.cs.meta +2 -2
  864. package/Styles/Elements/Progress/WigglyProgressBar.cs +837 -837
  865. package/Styles/Elements/Progress/WigglyProgressBar.cs.meta +2 -2
  866. package/Styles/Elements/Progress.meta +2 -2
  867. package/Styles/Elements.meta +2 -2
  868. package/Styles/USS/ArcedProgressBar.uss +18 -18
  869. package/Styles/USS/ArcedProgressBar.uss.meta +2 -2
  870. package/Styles/USS/CirclularProgressBar.uss +17 -17
  871. package/Styles/USS/CirclularProgressBar.uss.meta +2 -2
  872. package/Styles/USS/RegularProgressBar.uss +32 -32
  873. package/Styles/USS/RegularProgressBar.uss.meta +2 -2
  874. package/Styles/USS/WigglyProgressBar.uss +16 -16
  875. package/Styles/USS/WigglyProgressBar.uss.meta +2 -2
  876. package/Styles/USS.meta +2 -2
  877. package/Styles/WallstopStudios.UnityHelpers.Styles.asmdef +14 -17
  878. package/Styles/WallstopStudios.UnityHelpers.Styles.asmdef.meta +7 -7
  879. package/Styles.meta +2 -2
  880. package/THIRD_PARTY_NOTICES.md +74 -0
  881. package/THIRD_PARTY_NOTICES.md.meta +7 -0
  882. package/Tests/Editor/Attributes/AnimationEventHelpersTests.cs +155 -0
  883. package/Tests/Editor/Attributes/AnimationEventHelpersTests.cs.meta +11 -0
  884. package/Tests/Editor/Attributes.meta +8 -0
  885. package/Tests/Editor/Core/Attributes/RelationalComponentAssignerTests.cs +118 -0
  886. package/Tests/Editor/Core/Attributes/RelationalComponentAssignerTests.cs.meta +11 -0
  887. package/Tests/Editor/Core/Attributes.meta +8 -0
  888. package/Tests/Editor/Core.meta +8 -0
  889. package/Tests/Editor/Extensions/SerializedPropertyExtensionsTests.cs +194 -0
  890. package/Tests/Editor/Extensions/SerializedPropertyExtensionsTests.cs.meta +3 -0
  891. package/Tests/Editor/Extensions.meta +3 -0
  892. package/Tests/Editor/Helper/DummyScriptableObject.cs +6 -0
  893. package/Tests/Editor/Helper/DummyScriptableObject.cs.meta +3 -0
  894. package/Tests/Editor/Helper/HelpersTests.cs +101 -0
  895. package/Tests/Editor/Helper/HelpersTests.cs.meta +3 -0
  896. package/Tests/Editor/Helper/ObjectHelpersEditorTests.cs +63 -0
  897. package/Tests/Editor/Helper/ObjectHelpersEditorTests.cs.meta +11 -0
  898. package/Tests/Editor/Helper/PromptScope.cs +28 -0
  899. package/Tests/Editor/Helper/PromptScope.cs.meta +11 -0
  900. package/Tests/Editor/Helper/ReflectionHelpersEditorTests.cs +105 -0
  901. package/Tests/Editor/Helper/ReflectionHelpersEditorTests.cs.meta +11 -0
  902. package/Tests/Editor/Helper/SpriteHelpersTests.cs +334 -0
  903. package/Tests/Editor/Helper/SpriteHelpersTests.cs.meta +3 -0
  904. package/Tests/Editor/Helper/SpriteSettingsApplierAdditionalTests.cs +183 -0
  905. package/Tests/Editor/Helper/SpriteSettingsApplierAdditionalTests.cs.meta +11 -0
  906. package/Tests/Editor/Helper/SpriteSettingsApplierTests.cs +161 -0
  907. package/Tests/Editor/Helper/SpriteSettingsApplierTests.cs.meta +11 -0
  908. package/Tests/Editor/Helper.meta +3 -0
  909. package/Tests/Editor/Integrations/VContainer/VContainerIntegrationCompilationTests.cs +40 -0
  910. package/Tests/Editor/Integrations/VContainer/VContainerIntegrationCompilationTests.cs.meta +11 -0
  911. package/Tests/Editor/Integrations/VContainer/VContainerRelationalEntryPointTests.cs +77 -0
  912. package/Tests/Editor/Integrations/VContainer/VContainerRelationalEntryPointTests.cs.meta +11 -0
  913. package/Tests/Editor/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Editor.VContainer.asmdef +36 -0
  914. package/Tests/Editor/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Editor.VContainer.asmdef.meta +7 -0
  915. package/Tests/Editor/Integrations/VContainer.meta +8 -0
  916. package/Tests/Editor/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Editor.Zenject.asmdef +36 -0
  917. package/Tests/Editor/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Editor.Zenject.asmdef.meta +7 -0
  918. package/Tests/Editor/Integrations/Zenject/ZenjectIntegrationCompilationTests.cs +40 -0
  919. package/Tests/Editor/Integrations/Zenject/ZenjectIntegrationCompilationTests.cs.meta +11 -0
  920. package/Tests/Editor/Integrations/Zenject/ZenjectRelationalInitializerTests.cs +76 -0
  921. package/Tests/Editor/Integrations/Zenject/ZenjectRelationalInitializerTests.cs.meta +11 -0
  922. package/Tests/Editor/Integrations/Zenject.meta +8 -0
  923. package/Tests/Editor/Integrations.meta +8 -0
  924. package/Tests/Editor/MultiFileSelectorElementTests.cs +265 -0
  925. package/Tests/Editor/MultiFileSelectorElementTests.cs.meta +11 -0
  926. package/Tests/Editor/MultiFileSelectorPersistenceManagerTests.cs +100 -0
  927. package/Tests/Editor/MultiFileSelectorPersistenceManagerTests.cs.meta +11 -0
  928. package/Tests/Editor/Sprites/AnimationCopierWindowTests.cs +199 -0
  929. package/Tests/Editor/Sprites/AnimationCopierWindowTests.cs.meta +11 -0
  930. package/Tests/Editor/Sprites/ScriptableSpriteAtlasEditorTests.cs +108 -0
  931. package/Tests/Editor/Sprites/ScriptableSpriteAtlasEditorTests.cs.meta +11 -0
  932. package/Tests/Editor/Sprites/SpriteCropperAdditionalTests.cs +323 -0
  933. package/Tests/Editor/Sprites/SpriteCropperAdditionalTests.cs.meta +11 -0
  934. package/Tests/Editor/Sprites/SpriteCropperTests.cs +162 -0
  935. package/Tests/Editor/Sprites/SpriteCropperTests.cs.meta +11 -0
  936. package/Tests/Editor/Sprites/SpritePivotAdjusterAdditionalTests.cs +227 -0
  937. package/Tests/Editor/Sprites/SpritePivotAdjusterAdditionalTests.cs.meta +11 -0
  938. package/Tests/Editor/Sprites/SpritePivotAdjusterTests.cs +113 -0
  939. package/Tests/Editor/Sprites/SpritePivotAdjusterTests.cs.meta +11 -0
  940. package/Tests/Editor/Sprites/TexturePlatformNameHelperTests.cs +28 -0
  941. package/Tests/Editor/Sprites/TexturePlatformNameHelperTests.cs.meta +11 -0
  942. package/Tests/Editor/Sprites/TextureResizerWizardTests.cs +248 -0
  943. package/Tests/Editor/Sprites/TextureResizerWizardTests.cs.meta +11 -0
  944. package/Tests/Editor/Sprites/TextureSettingsApplierAPITests.cs +180 -0
  945. package/Tests/Editor/Sprites/TextureSettingsApplierAPITests.cs.meta +11 -0
  946. package/Tests/Editor/Sprites/TextureSettingsApplierWizardAdditionalTests.cs +295 -0
  947. package/Tests/Editor/Sprites/TextureSettingsApplierWizardAdditionalTests.cs.meta +11 -0
  948. package/Tests/Editor/Sprites/TextureSettingsApplierWizardTests.cs +134 -0
  949. package/Tests/Editor/Sprites/TextureSettingsApplierWizardTests.cs.meta +11 -0
  950. package/Tests/Editor/Sprites.meta +8 -0
  951. package/Tests/Editor/TestComponents/PrewarmTesterComponent.cs +10 -0
  952. package/Tests/Editor/TestComponents/PrewarmTesterComponent.cs.meta +11 -0
  953. package/Tests/Editor/TestComponents.meta +8 -0
  954. package/Tests/Editor/Tools/ImageBlurToolTests.cs +135 -0
  955. package/Tests/Editor/Tools/ImageBlurToolTests.cs.meta +11 -0
  956. package/Tests/Editor/Tools.meta +8 -0
  957. package/Tests/Editor/Utils/CommonTestBase.cs +208 -0
  958. package/Tests/Editor/Utils/CommonTestBase.cs.meta +11 -0
  959. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorEditorTests.cs +306 -0
  960. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorEditorTests.cs.meta +9 -0
  961. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorTests.cs +183 -0
  962. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorTests.cs.meta +11 -0
  963. package/Tests/Editor/Utils/ScriptableObjectSingletonTests.cs +466 -0
  964. package/Tests/Editor/Utils/ScriptableObjectSingletonTests.cs.meta +11 -0
  965. package/Tests/Editor/Utils.meta +3 -0
  966. package/Tests/Editor/WallstopStudios.UnityHelpers.Tests.Editor.asmdef +19 -0
  967. package/Tests/Editor/WallstopStudios.UnityHelpers.Tests.Editor.asmdef.meta +7 -0
  968. package/Tests/Editor/Windows/FitTextureSizeWindowTests.cs +781 -0
  969. package/Tests/Editor/Windows/FitTextureSizeWindowTests.cs.meta +11 -0
  970. package/Tests/Editor/Windows/PrefabCheckerFolderAdditionTests.cs +96 -0
  971. package/Tests/Editor/Windows/PrefabCheckerFolderAdditionTests.cs.meta +11 -0
  972. package/Tests/Editor/Windows/PrefabCheckerTests.cs +81 -0
  973. package/Tests/Editor/Windows/PrefabCheckerTests.cs.meta +11 -0
  974. package/Tests/Editor/Windows.meta +8 -0
  975. package/Tests/Editor.meta +8 -0
  976. package/Tests/Runtime/AssemblyInfo.cs +4 -0
  977. package/Tests/Runtime/AssemblyInfo.cs.meta +3 -0
  978. package/Tests/Runtime/Attributes/ChildComponentTests.cs +766 -81
  979. package/Tests/Runtime/Attributes/ChildComponentTests.cs.meta +2 -2
  980. package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
  981. package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs.meta +2 -2
  982. package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
  983. package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs.meta +2 -2
  984. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentTesterComplex.cs +34 -34
  985. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentTesterComplex.cs.meta +2 -2
  986. package/Tests/Runtime/Attributes/Components/RelationalComponentsTesterSimple.cs +37 -0
  987. package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentsTesterSimple.cs.meta +2 -2
  988. package/Tests/Runtime/Attributes/Components.meta +2 -2
  989. package/Tests/Runtime/Attributes/MiscRuntimeAttributeTests.cs +75 -0
  990. package/Tests/Runtime/Attributes/MiscRuntimeAttributeTests.cs.meta +11 -0
  991. package/Tests/Runtime/Attributes/NotNullAttributeTests.cs +26 -0
  992. package/Tests/Runtime/Attributes/NotNullAttributeTests.cs.meta +3 -0
  993. package/Tests/Runtime/Attributes/ParentComponentTests.cs +565 -68
  994. package/Tests/Runtime/Attributes/ParentComponentTests.cs.meta +2 -2
  995. package/Tests/Runtime/Attributes/RelationalComponentAdvancedTests.cs +614 -0
  996. package/Tests/Runtime/Attributes/RelationalComponentAdvancedTests.cs.meta +11 -0
  997. package/Tests/Runtime/Attributes/RelationalComponentBackwardCompatibilityTests.cs +478 -0
  998. package/Tests/Runtime/Attributes/RelationalComponentBackwardCompatibilityTests.cs.meta +11 -0
  999. package/Tests/Runtime/Attributes/RelationalComponentExtensionsTests.cs +56 -0
  1000. package/Tests/Runtime/Attributes/RelationalComponentExtensionsTests.cs.meta +11 -0
  1001. package/Tests/Runtime/Attributes/RelationalComponentHashSetTests.cs +226 -0
  1002. package/Tests/Runtime/Attributes/RelationalComponentHashSetTests.cs.meta +11 -0
  1003. package/Tests/Runtime/Attributes/RelationalComponentInitializerTests.cs +109 -0
  1004. package/Tests/Runtime/Attributes/RelationalComponentInitializerTests.cs.meta +11 -0
  1005. package/Tests/Runtime/Attributes/RelationalComponentTagAndNameFilterEdgeTests.cs +234 -0
  1006. package/Tests/Runtime/Attributes/RelationalComponentTagAndNameFilterEdgeTests.cs.meta +11 -0
  1007. package/Tests/Runtime/Attributes/SiblingComponentTests.cs +721 -0
  1008. package/Tests/Runtime/Attributes/SiblingComponentTests.cs.meta +11 -0
  1009. package/Tests/Runtime/Attributes/ValidateAssignmentAttributeTests.cs +96 -0
  1010. package/Tests/Runtime/Attributes/ValidateAssignmentAttributeTests.cs.meta +11 -0
  1011. package/Tests/Runtime/Attributes.meta +2 -2
  1012. package/Tests/Runtime/Core/Random/RandomComparerTests.cs +166 -0
  1013. package/Tests/Runtime/Core/Random/RandomComparerTests.cs.meta +11 -0
  1014. package/Tests/Runtime/Core/Random.meta +8 -0
  1015. package/Tests/Runtime/Core/Threading/SingleThreadedThreadPoolTests.cs +56 -56
  1016. package/Tests/Runtime/Core/Threading/SingleThreadedThreadPoolTests.cs.meta +2 -2
  1017. package/Tests/Runtime/Core/Threading.meta +2 -2
  1018. package/Tests/Runtime/Core.meta +2 -2
  1019. package/Tests/Runtime/DataStructures/BalancedKDTree2DTests.cs +562 -0
  1020. package/Tests/Runtime/DataStructures/{BalancedKDTreeTests.cs.meta → BalancedKDTree2DTests.cs.meta} +11 -11
  1021. package/Tests/Runtime/DataStructures/BalancedKDTree3DTests.cs +10 -0
  1022. package/Tests/Runtime/DataStructures/BalancedKDTree3DTests.cs.meta +11 -0
  1023. package/Tests/Runtime/DataStructures/BitSetTests.cs +1400 -0
  1024. package/Tests/Runtime/DataStructures/BitSetTests.cs.meta +3 -0
  1025. package/Tests/Runtime/DataStructures/BoundingBox3DTests.cs +1215 -0
  1026. package/Tests/Runtime/DataStructures/BoundingBox3DTests.cs.meta +11 -0
  1027. package/Tests/Runtime/DataStructures/CircleTests.cs +965 -0
  1028. package/Tests/Runtime/DataStructures/CircleTests.cs.meta +11 -0
  1029. package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +2083 -324
  1030. package/Tests/Runtime/DataStructures/CyclicBufferTests.cs.meta +2 -2
  1031. package/Tests/Runtime/DataStructures/DequeTests.cs +790 -0
  1032. package/Tests/Runtime/DataStructures/DequeTests.cs.meta +3 -0
  1033. package/Tests/Runtime/DataStructures/DisjointSetTests.cs +1114 -0
  1034. package/Tests/Runtime/DataStructures/DisjointSetTests.cs.meta +3 -0
  1035. package/Tests/Runtime/DataStructures/FastOneOfTests.cs +966 -0
  1036. package/Tests/Runtime/DataStructures/FastOneOfTests.cs.meta +11 -0
  1037. package/Tests/Runtime/DataStructures/FastVector2IntTests.cs +286 -0
  1038. package/Tests/Runtime/DataStructures/FastVector2IntTests.cs.meta +11 -0
  1039. package/Tests/Runtime/DataStructures/FastVector3IntTests.cs +414 -0
  1040. package/Tests/Runtime/DataStructures/FastVector3IntTests.cs.meta +11 -0
  1041. package/Tests/Runtime/DataStructures/HeapTests.cs +1953 -0
  1042. package/Tests/Runtime/DataStructures/HeapTests.cs.meta +11 -0
  1043. package/Tests/Runtime/DataStructures/ImmutableBitSetTests.cs +833 -0
  1044. package/Tests/Runtime/DataStructures/ImmutableBitSetTests.cs.meta +3 -0
  1045. package/Tests/Runtime/DataStructures/KDTree3DTestsBase.cs +297 -0
  1046. package/Tests/Runtime/DataStructures/KDTree3DTestsBase.cs.meta +11 -0
  1047. package/Tests/Runtime/DataStructures/OctTree3DTests.cs +351 -0
  1048. package/Tests/Runtime/DataStructures/OctTree3DTests.cs.meta +11 -0
  1049. package/Tests/Runtime/DataStructures/PriorityQueueTests.cs +71 -0
  1050. package/Tests/Runtime/DataStructures/PriorityQueueTests.cs.meta +3 -0
  1051. package/Tests/Runtime/DataStructures/ProtobufSerializationTests.cs +475 -0
  1052. package/Tests/Runtime/DataStructures/ProtobufSerializationTests.cs.meta +11 -0
  1053. package/Tests/Runtime/DataStructures/QuadTree2DTests.cs +660 -0
  1054. package/Tests/Runtime/DataStructures/QuadTree2DTests.cs.meta +11 -0
  1055. package/Tests/Runtime/DataStructures/RTree2DTests.cs +823 -0
  1056. package/Tests/Runtime/DataStructures/RTree2DTests.cs.meta +3 -0
  1057. package/Tests/Runtime/DataStructures/RTree3DTests.cs +270 -0
  1058. package/Tests/Runtime/DataStructures/RTree3DTests.cs.meta +11 -0
  1059. package/Tests/Runtime/DataStructures/SparseSetTests.cs +1146 -0
  1060. package/Tests/Runtime/DataStructures/SparseSetTests.cs.meta +3 -0
  1061. package/Tests/Runtime/DataStructures/SpatialHashTests.cs +992 -0
  1062. package/Tests/Runtime/DataStructures/SpatialHashTests.cs.meta +11 -0
  1063. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsConsistencyTests.cs +351 -0
  1064. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsConsistencyTests.cs.meta +11 -0
  1065. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsEdgeTests.cs +127 -0
  1066. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsEdgeTests.cs.meta +11 -0
  1067. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsFuzzTests.cs +218 -0
  1068. package/Tests/Runtime/DataStructures/SpatialTree2DBoundsFuzzTests.cs.meta +11 -0
  1069. package/Tests/Runtime/DataStructures/SpatialTree2DTests.cs +396 -0
  1070. package/Tests/Runtime/DataStructures/SpatialTree2DTests.cs.meta +11 -0
  1071. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsConsistencyTests.cs +281 -0
  1072. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsConsistencyTests.cs.meta +11 -0
  1073. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsEdgeTests.cs +127 -0
  1074. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsEdgeTests.cs.meta +11 -0
  1075. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsFuzzTests.cs +170 -0
  1076. package/Tests/Runtime/DataStructures/SpatialTree3DBoundsFuzzTests.cs.meta +11 -0
  1077. package/Tests/Runtime/DataStructures/SpatialTree3DTests.cs +474 -0
  1078. package/Tests/Runtime/DataStructures/SpatialTree3DTests.cs.meta +11 -0
  1079. package/Tests/Runtime/DataStructures/SphereTests.cs +806 -0
  1080. package/Tests/Runtime/DataStructures/SphereTests.cs.meta +3 -0
  1081. package/Tests/Runtime/DataStructures/StringWrapperTests.cs +333 -0
  1082. package/Tests/Runtime/DataStructures/StringWrapperTests.cs.meta +11 -0
  1083. package/Tests/Runtime/DataStructures/TimedCacheTests.cs +669 -0
  1084. package/Tests/Runtime/DataStructures/TimedCacheTests.cs.meta +11 -0
  1085. package/Tests/Runtime/DataStructures/TrieTests.cs +3385 -0
  1086. package/Tests/Runtime/DataStructures/TrieTests.cs.meta +11 -0
  1087. package/Tests/Runtime/DataStructures/UnbalancedKDTree2DTests.cs +565 -0
  1088. package/Tests/Runtime/DataStructures/{UnbalancedKDTreeTests.cs.meta → UnbalancedKDTree2DTests.cs.meta} +11 -11
  1089. package/Tests/Runtime/DataStructures/UnbalancedKDTree3DTests.cs +10 -0
  1090. package/Tests/Runtime/DataStructures/UnbalancedKDTree3DTests.cs.meta +11 -0
  1091. package/Tests/Runtime/DataStructures.meta +8 -8
  1092. package/Tests/Runtime/Extensions/AnimatorExtensionsTests.cs +28 -0
  1093. package/Tests/Runtime/Extensions/AnimatorExtensionsTests.cs.meta +11 -0
  1094. package/Tests/Runtime/Extensions/AsyncOperationExtensionsTests.cs +667 -0
  1095. package/Tests/Runtime/Extensions/AsyncOperationExtensionsTests.cs.meta +11 -0
  1096. package/Tests/Runtime/Extensions/CircleExtensionsTests.cs +230 -0
  1097. package/Tests/Runtime/Extensions/CircleExtensionsTests.cs.meta +11 -0
  1098. package/Tests/Runtime/Extensions/ColorExtensionsTests.cs +55 -0
  1099. package/Tests/Runtime/Extensions/ColorExtensionsTests.cs.meta +11 -0
  1100. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +724 -438
  1101. package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
  1102. package/Tests/Runtime/Extensions/DirectionExtensionsComprehensiveTests.cs +403 -0
  1103. package/Tests/Runtime/Extensions/DirectionExtensionsComprehensiveTests.cs.meta +11 -0
  1104. package/Tests/Runtime/Extensions/DirectionExtensionsTests.cs +69 -0
  1105. package/Tests/Runtime/Extensions/DirectionExtensionsTests.cs.meta +11 -0
  1106. package/Tests/Runtime/Extensions/EnumExtensionTests.cs +809 -153
  1107. package/Tests/Runtime/Extensions/EnumExtensionTests.cs.meta +2 -2
  1108. package/Tests/Runtime/Extensions/IEnumerableExtensionsTests.cs +191 -0
  1109. package/Tests/Runtime/Extensions/IEnumerableExtensionsTests.cs.meta +11 -0
  1110. package/Tests/Runtime/Extensions/IListExtensionTests.cs +955 -169
  1111. package/Tests/Runtime/Extensions/IListExtensionTests.cs.meta +2 -2
  1112. package/Tests/Runtime/Extensions/IReadonlyListExtensionTests.cs +266 -58
  1113. package/Tests/Runtime/Extensions/IReadonlyListExtensionTests.cs.meta +2 -2
  1114. package/Tests/Runtime/Extensions/LoggingExtensionTests.cs +721 -718
  1115. package/Tests/Runtime/Extensions/LoggingExtensionTests.cs.meta +2 -2
  1116. package/Tests/Runtime/Extensions/ProtoEqualityExtensionsTests.cs +565 -0
  1117. package/Tests/Runtime/Extensions/ProtoEqualityExtensionsTests.cs.meta +3 -0
  1118. package/Tests/Runtime/Extensions/ProtoEqualityPolymorphismTests.cs +100 -0
  1119. package/Tests/Runtime/Extensions/ProtoEqualityPolymorphismTests.cs.meta +11 -0
  1120. package/Tests/Runtime/Extensions/RandomExtensionTests.cs +719 -27
  1121. package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
  1122. package/Tests/Runtime/Extensions/StringExtensionTests.cs +2592 -31
  1123. package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
  1124. package/Tests/Runtime/Extensions/UnityExtensionsBasicTests.cs +166 -0
  1125. package/Tests/Runtime/Extensions/UnityExtensionsBasicTests.cs.meta +11 -0
  1126. package/Tests/Runtime/Extensions/UnityExtensionsComprehensiveTests.cs +1446 -0
  1127. package/Tests/Runtime/Extensions/UnityExtensionsComprehensiveTests.cs.meta +11 -0
  1128. package/Tests/Runtime/Extensions/UnityExtensionsMathTests.cs +1779 -0
  1129. package/Tests/Runtime/Extensions/UnityExtensionsMathTests.cs.meta +11 -0
  1130. package/Tests/Runtime/Extensions/UnityExtensionsVector2HullTests.cs +292 -0
  1131. package/Tests/Runtime/Extensions/UnityExtensionsVector2HullTests.cs.meta +11 -0
  1132. package/Tests/Runtime/Extensions/UnityLogTagFormatterEdgeTests.cs +260 -0
  1133. package/Tests/Runtime/Extensions/UnityLogTagFormatterEdgeTests.cs.meta +11 -0
  1134. package/Tests/Runtime/Extensions.meta +2 -2
  1135. package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
  1136. package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
  1137. package/Tests/Runtime/Helper/AssignUtilitiesTests.cs +38 -0
  1138. package/Tests/Runtime/Helper/AssignUtilitiesTests.cs.meta +11 -0
  1139. package/Tests/Runtime/Helper/DirectoryHelperTests.cs +347 -0
  1140. package/Tests/Runtime/Helper/DirectoryHelperTests.cs.meta +11 -0
  1141. package/Tests/Runtime/Helper/EnumerablesTests.cs +45 -0
  1142. package/Tests/Runtime/Helper/EnumerablesTests.cs.meta +11 -0
  1143. package/Tests/Runtime/Helper/FileHelperTests.cs +481 -0
  1144. package/Tests/Runtime/Helper/FileHelperTests.cs.meta +11 -0
  1145. package/Tests/Runtime/Helper/FormattingHelpersTests.cs +353 -0
  1146. package/Tests/Runtime/Helper/FormattingHelpersTests.cs.meta +11 -0
  1147. package/Tests/Runtime/Helper/FuncBasedComparerTests.cs +27 -0
  1148. package/Tests/Runtime/Helper/FuncBasedComparerTests.cs.meta +11 -0
  1149. package/Tests/Runtime/Helper/GeometryTests.cs +517 -0
  1150. package/Tests/Runtime/Helper/GeometryTests.cs.meta +3 -0
  1151. package/Tests/Runtime/Helper/HelpersTests.cs +749 -0
  1152. package/Tests/Runtime/Helper/HelpersTests.cs.meta +11 -0
  1153. package/Tests/Runtime/Helper/IterationHelpersTests.cs +173 -0
  1154. package/Tests/Runtime/Helper/IterationHelpersTests.cs.meta +11 -0
  1155. package/Tests/Runtime/Helper/LineHelperTests.cs +662 -0
  1156. package/Tests/Runtime/Helper/LineHelperTests.cs.meta +11 -0
  1157. package/Tests/Runtime/Helper/ObjectHelperTests.cs +444 -432
  1158. package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
  1159. package/Tests/Runtime/Helper/ObjectsTests.cs +363 -0
  1160. package/Tests/Runtime/Helper/ObjectsTests.cs.meta +3 -0
  1161. package/Tests/Runtime/Helper/PathHelperTests.cs +183 -0
  1162. package/Tests/Runtime/Helper/PathHelperTests.cs.meta +11 -0
  1163. package/Tests/Runtime/Helper/ReflectionHelperTests.cs +2199 -1493
  1164. package/Tests/Runtime/Helper/ReflectionHelperTests.cs.meta +2 -2
  1165. package/Tests/Runtime/Helper/ReflectionHelpersMemberLookupTests.cs +192 -0
  1166. package/Tests/Runtime/Helper/ReflectionHelpersMemberLookupTests.cs.meta +11 -0
  1167. package/Tests/Runtime/Helper/ReflectionHelpersTypeScanningTests.cs +58 -0
  1168. package/Tests/Runtime/Helper/ReflectionHelpersTypeScanningTests.cs.meta +11 -0
  1169. package/Tests/Runtime/Helper/SceneHelperTests.cs +77 -94
  1170. package/Tests/Runtime/Helper/SceneHelperTests.cs.meta +2 -2
  1171. package/Tests/Runtime/Helper/UnityMainThreadDispatcherTests.cs +45 -0
  1172. package/Tests/Runtime/Helper/UnityMainThreadDispatcherTests.cs.meta +11 -0
  1173. package/Tests/Runtime/Helper/WallMathTests.cs +1884 -233
  1174. package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
  1175. package/Tests/Runtime/Helper.meta +2 -2
  1176. package/Tests/Runtime/Integrations/VContainer/RelationalComponentsVContainerTests.cs +560 -0
  1177. package/Tests/Runtime/Integrations/VContainer/RelationalComponentsVContainerTests.cs.meta +11 -0
  1178. package/Tests/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Runtime.VContainer.asmdef +38 -0
  1179. package/Tests/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Runtime.VContainer.asmdef.meta +7 -0
  1180. package/Tests/Runtime/Integrations/VContainer.meta +8 -0
  1181. package/Tests/Runtime/Integrations/Zenject/RelationalComponentsZenjectTests.cs +591 -0
  1182. package/Tests/Runtime/Integrations/Zenject/RelationalComponentsZenjectTests.cs.meta +11 -0
  1183. package/Tests/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Runtime.Zenject.asmdef +38 -0
  1184. package/Tests/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Runtime.Zenject.asmdef.meta +7 -0
  1185. package/Tests/Runtime/Integrations/Zenject.meta +8 -0
  1186. package/Tests/Runtime/Integrations.meta +8 -0
  1187. package/Tests/Runtime/Math/Line2DTests.cs +594 -0
  1188. package/Tests/Runtime/Math/Line2DTests.cs.meta +11 -0
  1189. package/Tests/Runtime/Math/Line3DTests.cs +655 -0
  1190. package/Tests/Runtime/Math/Line3DTests.cs.meta +11 -0
  1191. package/Tests/Runtime/Math/LineTests.cs +480 -0
  1192. package/Tests/Runtime/Math/LineTests.cs.meta +11 -0
  1193. package/Tests/Runtime/Math/ParabolaTests.cs +477 -0
  1194. package/Tests/Runtime/Math/ParabolaTests.cs.meta +11 -0
  1195. package/Tests/Runtime/Math/PointPolygonCheckTests.cs +939 -0
  1196. package/Tests/Runtime/Math/PointPolygonCheckTests.cs.meta +11 -0
  1197. package/Tests/Runtime/Math/RangeTests.cs +197 -0
  1198. package/Tests/Runtime/Math/RangeTests.cs.meta +11 -0
  1199. package/Tests/Runtime/Math.meta +8 -0
  1200. package/Tests/Runtime/Performance/BenchmarkReadmeUpdater.cs +81 -0
  1201. package/Tests/Runtime/Performance/BenchmarkReadmeUpdater.cs.meta +11 -0
  1202. package/Tests/Runtime/Performance/JsonSerializationPerformanceTests.cs +421 -0
  1203. package/Tests/Runtime/Performance/JsonSerializationPerformanceTests.cs.meta +3 -0
  1204. package/Tests/Runtime/Performance/ListExtensionPerformanceTests.cs +76 -76
  1205. package/Tests/Runtime/Performance/ListExtensionPerformanceTests.cs.meta +2 -2
  1206. package/Tests/Runtime/Performance/ProtoEqualsPerformanceTests.cs +161 -0
  1207. package/Tests/Runtime/Performance/ProtoEqualsPerformanceTests.cs.meta +11 -0
  1208. package/Tests/Runtime/Performance/ProtoSerializationPerformanceTests.cs +207 -0
  1209. package/Tests/Runtime/Performance/ProtoSerializationPerformanceTests.cs.meta +3 -0
  1210. package/Tests/Runtime/Performance/RandomPerformanceTests.cs +195 -181
  1211. package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
  1212. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +60 -61
  1213. package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs.meta +2 -2
  1214. package/Tests/Runtime/Performance/SpatialTree2DPerformanceTests.cs +692 -0
  1215. package/Tests/Runtime/Performance/SpatialTree2DPerformanceTests.cs.meta +11 -0
  1216. package/Tests/Runtime/Performance/SpatialTree3DPerformanceTests.cs +650 -0
  1217. package/Tests/Runtime/Performance/SpatialTree3DPerformanceTests.cs.meta +11 -0
  1218. package/Tests/Runtime/Performance.meta +8 -8
  1219. package/Tests/Runtime/Random/DotNetRandomTests.cs +9 -9
  1220. package/Tests/Runtime/Random/DotNetRandomTests.cs.meta +2 -2
  1221. package/Tests/Runtime/Random/IllusionFlowTests.cs +12 -12
  1222. package/Tests/Runtime/Random/IllusionFlowTests.cs.meta +2 -2
  1223. package/Tests/Runtime/Random/LinearCongruentialGeneratorTests.cs +12 -12
  1224. package/Tests/Runtime/Random/LinearCongruentialGeneratorTests.cs.meta +2 -2
  1225. package/Tests/Runtime/Random/PcgRandomTests.cs +9 -9
  1226. package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -11
  1227. package/Tests/Runtime/Random/RandomProtoSerializationTests.cs +494 -0
  1228. package/Tests/Runtime/Random/RandomProtoSerializationTests.cs.meta +3 -0
  1229. package/Tests/Runtime/Random/RandomStateSerializationTests.cs +304 -0
  1230. package/Tests/Runtime/Random/RandomStateSerializationTests.cs.meta +4 -0
  1231. package/Tests/Runtime/Random/RandomTestBase.cs +836 -787
  1232. package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -11
  1233. package/Tests/Runtime/Random/RomuDuoRandomTests.cs +9 -9
  1234. package/Tests/Runtime/Random/RomuDuoRandomTests.cs.meta +2 -2
  1235. package/Tests/Runtime/Random/SplitMix64RandomTests.cs +9 -9
  1236. package/Tests/Runtime/Random/SplitMix64RandomTests.cs.meta +2 -2
  1237. package/Tests/Runtime/Random/SquirrelRandomTests.cs +14 -14
  1238. package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -11
  1239. package/Tests/Runtime/Random/SystemRandomTests.cs +10 -10
  1240. package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -11
  1241. package/Tests/Runtime/Random/UnityRandomTests.cs +9 -9
  1242. package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -11
  1243. package/Tests/Runtime/Random/WyRandomTests.cs +9 -9
  1244. package/Tests/Runtime/Random/WyRandomTests.cs.meta +2 -2
  1245. package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -9
  1246. package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -11
  1247. package/Tests/Runtime/Random/XoroShiroRandomTests.cs +9 -9
  1248. package/Tests/Runtime/Random/XoroShiroRandomTests.cs.meta +2 -2
  1249. package/Tests/Runtime/Random.meta +8 -8
  1250. package/Tests/Runtime/RuntimeTestTimeouts.cs +3 -0
  1251. package/Tests/Runtime/RuntimeTestTimeouts.cs.meta +11 -0
  1252. package/Tests/Runtime/Scenes/Test1.unity +723 -723
  1253. package/Tests/Runtime/Scenes/Test1.unity.meta +7 -7
  1254. package/Tests/Runtime/Scenes/Test2.unity +723 -723
  1255. package/Tests/Runtime/Scenes/Test2.unity.meta +7 -7
  1256. package/Tests/Runtime/Scenes.meta +2 -2
  1257. package/Tests/Runtime/Serialization/AdaptersJsonTests.cs +67 -0
  1258. package/Tests/Runtime/Serialization/AdaptersJsonTests.cs.meta +11 -0
  1259. package/Tests/Runtime/Serialization/BitSetJsonTests.cs +50 -0
  1260. package/Tests/Runtime/Serialization/BitSetJsonTests.cs.meta +11 -0
  1261. package/Tests/Runtime/Serialization/CyclicBufferJsonTests.cs +67 -0
  1262. package/Tests/Runtime/Serialization/CyclicBufferJsonTests.cs.meta +11 -0
  1263. package/Tests/Runtime/Serialization/DequeJsonTests.cs +70 -0
  1264. package/Tests/Runtime/Serialization/DequeJsonTests.cs.meta +11 -0
  1265. package/Tests/Runtime/Serialization/ImmutableBitSetJsonTests.cs +25 -0
  1266. package/Tests/Runtime/Serialization/ImmutableBitSetJsonTests.cs.meta +11 -0
  1267. package/Tests/Runtime/Serialization/JsonConverterTests.cs +1157 -0
  1268. package/Tests/Runtime/Serialization/JsonConverterTests.cs.meta +11 -0
  1269. package/Tests/Runtime/Serialization/JsonRoundtripComprehensiveTests.cs +239 -0
  1270. package/Tests/Runtime/Serialization/JsonRoundtripComprehensiveTests.cs.meta +11 -0
  1271. package/Tests/Runtime/Serialization/JsonSerializationCorrectnessTests.cs +458 -0
  1272. package/Tests/Runtime/Serialization/JsonSerializationCorrectnessTests.cs.meta +3 -0
  1273. package/Tests/Runtime/Serialization/JsonSerializationTest.cs +156 -156
  1274. package/Tests/Runtime/Serialization/JsonSerializationTest.cs.meta +2 -2
  1275. package/Tests/Runtime/Serialization/MathJsonTests.cs +79 -0
  1276. package/Tests/Runtime/Serialization/MathJsonTests.cs.meta +11 -0
  1277. package/Tests/Runtime/Serialization/ProtoInterfaceResolutionEdgeTests.cs +76 -0
  1278. package/Tests/Runtime/Serialization/ProtoInterfaceResolutionEdgeTests.cs.meta +11 -0
  1279. package/Tests/Runtime/Serialization/ProtoRootRegistrationTests.cs +80 -0
  1280. package/Tests/Runtime/Serialization/ProtoRootRegistrationTests.cs.meta +11 -0
  1281. package/Tests/Runtime/Serialization/ProtoRoundtripComprehensiveTests.cs +257 -0
  1282. package/Tests/Runtime/Serialization/ProtoRoundtripComprehensiveTests.cs.meta +11 -0
  1283. package/Tests/Runtime/Serialization/ProtoSerializationCorrectnessTests.cs +471 -0
  1284. package/Tests/Runtime/Serialization/ProtoSerializationCorrectnessTests.cs.meta +3 -0
  1285. package/Tests/Runtime/Serialization/ProtoSerializationTests.cs +169 -0
  1286. package/Tests/Runtime/Serialization/ProtoSerializationTests.cs.meta +11 -0
  1287. package/Tests/Runtime/Serialization/ProtoSerializeBehaviorTests.cs +62 -0
  1288. package/Tests/Runtime/Serialization/ProtoSerializeBehaviorTests.cs.meta +11 -0
  1289. package/Tests/Runtime/Serialization/SerializerAdditionalTests.cs +895 -0
  1290. package/Tests/Runtime/Serialization/SerializerAdditionalTests.cs.meta +3 -0
  1291. package/Tests/Runtime/Serialization/TypeConverterTests.cs +34 -0
  1292. package/Tests/Runtime/Serialization/TypeConverterTests.cs.meta +11 -0
  1293. package/Tests/Runtime/Serialization.meta +2 -2
  1294. package/Tests/Runtime/Tags/AttributeComponentTests.cs +174 -0
  1295. package/Tests/Runtime/Tags/AttributeComponentTests.cs.meta +3 -0
  1296. package/Tests/Runtime/Tags/AttributeDataTests.cs +312 -0
  1297. package/Tests/Runtime/Tags/AttributeDataTests.cs.meta +11 -0
  1298. package/Tests/Runtime/Tags/AttributeUtilitiesTests.cs +405 -0
  1299. package/Tests/Runtime/Tags/AttributeUtilitiesTests.cs.meta +3 -0
  1300. package/Tests/Runtime/Tags/CosmeticAndCollisionTests.cs +147 -0
  1301. package/Tests/Runtime/Tags/CosmeticAndCollisionTests.cs.meta +11 -0
  1302. package/Tests/Runtime/Tags/CosmeticEffectDataTests.cs +60 -0
  1303. package/Tests/Runtime/Tags/CosmeticEffectDataTests.cs.meta +3 -0
  1304. package/Tests/Runtime/Tags/EffectHandleTests.cs +61 -0
  1305. package/Tests/Runtime/Tags/EffectHandleTests.cs.meta +3 -0
  1306. package/Tests/Runtime/Tags/EffectHandlerTests.cs +270 -0
  1307. package/Tests/Runtime/Tags/EffectHandlerTests.cs.meta +3 -0
  1308. package/Tests/Runtime/Tags/Helpers/RecordingCosmeticComponent.cs +39 -0
  1309. package/Tests/Runtime/Tags/Helpers/RecordingCosmeticComponent.cs.meta +3 -0
  1310. package/Tests/Runtime/Tags/Helpers/TagTestBase.cs +49 -0
  1311. package/Tests/Runtime/Tags/Helpers/TagTestBase.cs.meta +3 -0
  1312. package/Tests/Runtime/Tags/Helpers/TestAttributesComponent.cs +28 -0
  1313. package/Tests/Runtime/Tags/Helpers/TestAttributesComponent.cs.meta +3 -0
  1314. package/Tests/Runtime/Tags/Helpers.meta +3 -0
  1315. package/Tests/Runtime/Tags/TagHandlerTests.cs +108 -0
  1316. package/Tests/Runtime/Tags/TagHandlerTests.cs.meta +3 -0
  1317. package/Tests/Runtime/Tags.meta +8 -0
  1318. package/Tests/Runtime/TestUtils/CommonTestBase.cs +213 -0
  1319. package/Tests/Runtime/TestUtils/CommonTestBase.cs.meta +11 -0
  1320. package/Tests/Runtime/TestUtils/GCAssert.cs +55 -0
  1321. package/Tests/Runtime/TestUtils/GCAssert.cs.meta +11 -0
  1322. package/Tests/Runtime/TestUtils/SpatialAssert.cs +33 -0
  1323. package/Tests/Runtime/TestUtils/SpatialAssert.cs.meta +11 -0
  1324. package/Tests/Runtime/TestUtils/SpatialDiagnostics.cs +195 -0
  1325. package/Tests/Runtime/TestUtils/SpatialDiagnostics.cs.meta +11 -0
  1326. package/Tests/Runtime/TestUtils.meta +8 -0
  1327. package/Tests/Runtime/Utils/AnimationEventEqualityComparerTests.cs +144 -0
  1328. package/Tests/Runtime/Utils/AnimationEventEqualityComparerTests.cs.meta +11 -0
  1329. package/Tests/Runtime/Utils/Ascii85Tests.cs +56 -0
  1330. package/Tests/Runtime/Utils/Ascii85Tests.cs.meta +11 -0
  1331. package/Tests/Runtime/Utils/BuffersTests.cs +1148 -741
  1332. package/Tests/Runtime/Utils/BuffersTests.cs.meta +2 -2
  1333. package/Tests/Runtime/Utils/BuffersWaitInstructionTests.cs +31 -0
  1334. package/Tests/Runtime/Utils/BuffersWaitInstructionTests.cs.meta +11 -0
  1335. package/Tests/Runtime/Utils/CenterPointOffsetTests.cs +67 -0
  1336. package/Tests/Runtime/Utils/CenterPointOffsetTests.cs.meta +11 -0
  1337. package/Tests/Runtime/Utils/ChildSpawnerTests.cs +490 -0
  1338. package/Tests/Runtime/Utils/ChildSpawnerTests.cs.meta +11 -0
  1339. package/Tests/Runtime/Utils/CircleLineRendererTests.cs +80 -0
  1340. package/Tests/Runtime/Utils/CircleLineRendererTests.cs.meta +11 -0
  1341. package/Tests/Runtime/Utils/CollisionProxyTests.cs +442 -0
  1342. package/Tests/Runtime/Utils/CollisionProxyTests.cs.meta +11 -0
  1343. package/Tests/Runtime/Utils/CoroutineHandlerTests.cs +353 -0
  1344. package/Tests/Runtime/Utils/CoroutineHandlerTests.cs.meta +11 -0
  1345. package/Tests/Runtime/Utils/DeferredDisposalResultTests.cs +44 -0
  1346. package/Tests/Runtime/Utils/DeferredDisposalResultTests.cs.meta +11 -0
  1347. package/Tests/Runtime/Utils/LZMAComprehensiveTests.cs +249 -0
  1348. package/Tests/Runtime/Utils/LZMAComprehensiveTests.cs.meta +11 -0
  1349. package/Tests/Runtime/Utils/LZMATests.cs +31 -0
  1350. package/Tests/Runtime/Utils/LZMATests.cs.meta +11 -0
  1351. package/Tests/Runtime/Utils/MatchColliderToSpriteAdditionalTests.cs +86 -0
  1352. package/Tests/Runtime/Utils/MatchColliderToSpriteAdditionalTests.cs.meta +11 -0
  1353. package/Tests/Runtime/Utils/MatchColliderToSpriteTests.cs +503 -0
  1354. package/Tests/Runtime/Utils/MatchColliderToSpriteTests.cs.meta +11 -0
  1355. package/Tests/Runtime/Utils/MatchTransformEdgeTests.cs +34 -0
  1356. package/Tests/Runtime/Utils/MatchTransformEdgeTests.cs.meta +11 -0
  1357. package/Tests/Runtime/Utils/MatchTransformTests.cs +495 -0
  1358. package/Tests/Runtime/Utils/MatchTransformTests.cs.meta +11 -0
  1359. package/Tests/Runtime/Utils/OscillatorTests.cs +540 -0
  1360. package/Tests/Runtime/Utils/OscillatorTests.cs.meta +11 -0
  1361. package/Tests/Runtime/Utils/PolygonCollider2DOptimizerTests.cs +52 -0
  1362. package/Tests/Runtime/Utils/PolygonCollider2DOptimizerTests.cs.meta +11 -0
  1363. package/Tests/Runtime/Utils/RuntimeSingletonTests.cs +766 -0
  1364. package/Tests/Runtime/Utils/RuntimeSingletonTests.cs.meta +11 -0
  1365. package/Tests/Runtime/Utils/SerializedStringComparerEdgeTests.cs +47 -0
  1366. package/Tests/Runtime/Utils/SerializedStringComparerEdgeTests.cs.meta +11 -0
  1367. package/Tests/Runtime/Utils/SerializedStringComparerTests.cs +361 -0
  1368. package/Tests/Runtime/Utils/SerializedStringComparerTests.cs.meta +11 -0
  1369. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs +383 -398
  1370. package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs.meta +2 -2
  1371. package/Tests/Runtime/Utils/SpriteRendererSyncTests.cs +134 -0
  1372. package/Tests/Runtime/Utils/SpriteRendererSyncTests.cs.meta +11 -0
  1373. package/Tests/Runtime/Utils/StartTrackerTests.cs +24 -0
  1374. package/Tests/Runtime/Utils/StartTrackerTests.cs.meta +11 -0
  1375. package/Tests/Runtime/Utils/TextureScaleEdgeTests.cs +114 -0
  1376. package/Tests/Runtime/Utils/TextureScaleEdgeTests.cs.meta +11 -0
  1377. package/Tests/Runtime/Utils/TextureScaleTests.cs +298 -0
  1378. package/Tests/Runtime/Utils/TextureScaleTests.cs.meta +3 -0
  1379. package/Tests/Runtime/Utils/TypeNameSorterAdditionalTests.cs +36 -0
  1380. package/Tests/Runtime/Utils/TypeNameSorterAdditionalTests.cs.meta +11 -0
  1381. package/Tests/Runtime/Utils/TypeNameSorterTests.cs +34 -0
  1382. package/Tests/Runtime/Utils/TypeNameSorterTests.cs.meta +11 -0
  1383. package/Tests/Runtime/Utils/UnityObjectNameComparerEdgeTests.cs +63 -0
  1384. package/Tests/Runtime/Utils/UnityObjectNameComparerEdgeTests.cs.meta +11 -0
  1385. package/Tests/Runtime/Utils/UnityObjectNameComparerTests.cs +59 -0
  1386. package/Tests/Runtime/Utils/UnityObjectNameComparerTests.cs.meta +11 -0
  1387. package/Tests/Runtime/Utils.meta +2 -2
  1388. package/Tests/Runtime/Visuals/AnimatedSpriteLayerTests.cs +266 -0
  1389. package/Tests/Runtime/Visuals/AnimatedSpriteLayerTests.cs.meta +11 -0
  1390. package/Tests/Runtime/Visuals/EnhancedImageTests.cs +184 -0
  1391. package/Tests/Runtime/Visuals/EnhancedImageTests.cs.meta +11 -0
  1392. package/Tests/Runtime/Visuals/LayeredImageTests.cs +422 -0
  1393. package/Tests/Runtime/Visuals/LayeredImageTests.cs.meta +11 -0
  1394. package/Tests/Runtime/Visuals/VisualsTestHelpers.cs +132 -0
  1395. package/Tests/Runtime/Visuals/VisualsTestHelpers.cs.meta +11 -0
  1396. package/Tests/Runtime/Visuals.meta +3 -0
  1397. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +24 -23
  1398. package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -7
  1399. package/Tests/Runtime.meta +8 -8
  1400. package/Tests.meta +8 -8
  1401. package/URP/VolumeProfiles/Post Processing Bloom Profile(URP).asset +63 -63
  1402. package/URP/VolumeProfiles/Post Processing Bloom Profile(URP).asset.meta +8 -8
  1403. package/URP/VolumeProfiles.meta +8 -8
  1404. package/URP.meta +8 -8
  1405. package/node_modules.meta +8 -0
  1406. package/package.json +95 -38
  1407. package/package.json.meta +7 -7
  1408. package/scripts/check-eol.ps1 +52 -0
  1409. package/scripts/check-eol.ps1.meta +7 -0
  1410. package/scripts/clean-nul.ps1 +29 -0
  1411. package/scripts/clean-nul.ps1.meta +7 -0
  1412. package/scripts/lint-doc-links.ps1 +80 -0
  1413. package/scripts/lint-doc-links.ps1.meta +7 -0
  1414. package/scripts/normalize-eol.ps1 +71 -0
  1415. package/scripts/normalize-eol.ps1.meta +7 -0
  1416. package/scripts.meta +8 -0
  1417. package/Editor/Sprites/ProjectAnimationSettings.cs +0 -50
  1418. package/Editor/Sprites/ProjectAnimationSettings.cs.meta +0 -3
  1419. package/Editor/Sprites/TextureSettingsApplier.cs +0 -178
  1420. package/Editor/Sprites/TextureSettingsApplier.cs.meta +0 -3
  1421. package/Runtime/Core/Attributes/ParentComponent.cs +0 -189
  1422. package/Runtime/Core/DataStructure/KDTree.cs +0 -434
  1423. package/Runtime/Core/DataStructure/QuadTree.cs +0 -431
  1424. package/Runtime/Core/DataStructure/RTree.cs +0 -356
  1425. package/Runtime/Core/Extension/HashSetExtensions.cs +0 -12
  1426. package/Runtime/Core/Extension/HashSetExtensions.cs.meta +0 -11
  1427. package/Runtime/Core/Math/Line.cs +0 -55
  1428. package/Runtime/Core/Math/Line.cs.meta +0 -11
  1429. package/Runtime/Core/Math/XXHash.cs +0 -310
  1430. package/Runtime/Core/Math/XXHash.cs.meta +0 -11
  1431. package/Tests/Runtime/Components/RelationalComponentsTesterSimple.cs +0 -40
  1432. package/Tests/Runtime/Components.meta +0 -3
  1433. package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +0 -14
  1434. package/Tests/Runtime/DataStructures/QuadTreeTests.cs +0 -14
  1435. package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +0 -11
  1436. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +0 -130
  1437. package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +0 -11
  1438. package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +0 -14
  1439. package/Tests/Runtime/Helper/FormattingHelperTests.cs +0 -129
  1440. package/Tests/Runtime/Helper/FormattingHelperTests.cs.meta +0 -3
  1441. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +0 -14
  1442. package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +0 -11
  1443. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +0 -14
  1444. package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +0 -11
  1445. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +0 -158
  1446. package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +0 -11
  1447. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +0 -14
  1448. package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +0 -11
  1449. package/Third Party Notices.md +0 -1
@@ -0,0 +1,1976 @@
1
+ # Wallstop Studios Unity Helpers - Editor Tools Guide
2
+
3
+ ## TL;DR — What You Get
4
+
5
+ - One‑click utilities for sprites, textures, validation, and automation.
6
+ - Clear menus, step‑by‑step workflows, and safe previews before destructive actions.
7
+ - Start with: Sprite Cropper, Image Blur, Animation Creator, Prefab Checker, and the ScriptableObject Singleton Creator.
8
+
9
+ Comprehensive documentation for all editor wizards, windows, and automation tools.
10
+
11
+ ---
12
+
13
+ ## What Do You Want To Do? (Task-Based Index)
14
+
15
+ <!-- markdownlint-disable MD040 -->
16
+
17
+ ### Optimize Sprite Memory & Performance
18
+
19
+ - Remove transparent padding → [Sprite Cropper](#sprite-cropper)
20
+ - Adjust texture sizes automatically → [Fit Texture Size](#fit-texture-size)
21
+ - Batch apply import settings → [Texture Settings Applier](#texture-settings-applier)
22
+ - Standardize sprite settings → [Sprite Settings Applier](#sprite-settings-applier)
23
+ - Adjust sprite pivots → [Sprite Pivot Adjuster](#sprite-pivot-adjuster)
24
+
25
+ ### Create & Edit Animations
26
+
27
+ - Edit animation timing/frames visually → [Sprite Animation Editor](#sprite-animation-editor-animation-viewer-window)
28
+ - Bulk-create animations from sprites → [Animation Creator](#animation-creator)
29
+ - Convert sprite sheets to clips → [Sprite Sheet Animation Creator](#sprite-sheet-animation-creator)
30
+ - Add/edit animation events → [Animation Event Editor](#animation-event-editor)
31
+ - Copy/sync animations between folders → [Animation Copier](#animation-copier)
32
+
33
+ ### Build Sprite Atlases
34
+
35
+ - Create atlases with regex/labels → [Sprite Atlas Generator](#sprite-atlas-generator)
36
+
37
+ ### Validate & Fix Prefabs
38
+
39
+ - Check prefabs for errors → [Prefab Checker](#prefab-checker)
40
+
41
+ ### Apply Visual Effects
42
+
43
+ - Blur textures (backgrounds, DOF) → [Image Blur Tool](#image-blur-tool)
44
+ - Resize textures with filtering → [Texture Resizer](#texture-resizer)
45
+
46
+ ### Automate Setup & Maintenance
47
+
48
+ - Auto-create singleton assets → [ScriptableObject Singleton Creator](#scriptableobject-singleton-creator)
49
+ - Cache attribute metadata → [Attribute Metadata Cache Generator](#attribute-metadata-cache-generator)
50
+ - Track sprite labels → [Sprite Label Processor](#sprite-label-processor)
51
+
52
+ ### Enhance Inspector Workflows
53
+
54
+ - Conditional field display → [WShowIf Property Drawer](#wshowif-property-drawer)
55
+ - Dropdown for strings/ints → [StringInList](#stringinlist-property-drawer) | [IntDropdown](#intdropdown-property-drawer)
56
+ - Read-only inspector fields → [DxReadOnly Property Drawer](#dxreadonly-property-drawer)
57
+
58
+ ---
59
+
60
+ ## Table of Contents
61
+
62
+ 1. [Texture & Sprite Tools](#texture--sprite-tools)
63
+ 2. [Animation Tools](#animation-tools)
64
+ 3. [Sprite Atlas Tools](#sprite-atlas-tools)
65
+ 4. [Validation & Quality Tools](#validation--quality-tools)
66
+ 5. [Custom Component Editors](#custom-component-editors)
67
+ 6. [Property Drawers & Attributes](#property-drawers--attributes)
68
+ 7. [Automation & Utilities](#automation--utilities)
69
+ - [ScriptableObject Singleton Creator](#scriptableobject-singleton-creator)
70
+ 8. [Quick Reference](#quick-reference)
71
+
72
+ ---
73
+
74
+ <a id="texture--sprite-tools"></a>
75
+ <a id="texture-sprite-tools"></a>
76
+
77
+ ## Texture & Sprite Tools
78
+
79
+ ### Image Blur Tool
80
+
81
+ **Menu:** `Tools > Wallstop Studios > Unity Helpers > Image Blur`
82
+
83
+ **Purpose:** Apply Gaussian blur effects to textures in batch for backgrounds, depth-of-field, or softened sprites.
84
+
85
+ **Key Features:**
86
+
87
+ - Configurable blur radius (1-200 pixels)
88
+ - Batch processing support
89
+ - Drag-and-drop folders/files
90
+ - Preserves original files
91
+ - Parallel processing for speed
92
+
93
+ **Common Workflow:**
94
+
95
+ ```
96
+ 1. Open Image Blur Tool
97
+ 2. Drag sprite folder into designated area
98
+ 3. Set blur radius (e.g., 10 for subtle, 50 for heavy)
99
+ 4. Click "Apply Blur"
100
+ 5. Find blurred versions with "_blurred_[radius]" suffix
101
+ ```
102
+
103
+ **Best For:**
104
+
105
+ - UI background blur effects
106
+ - Depth-of-field texture generation
107
+ - Post-processing texture preparation
108
+
109
+ ---
110
+
111
+ ### Sprite Cropper
112
+
113
+ **Menu:** `Tools > Wallstop Studios > Unity Helpers > Sprite Cropper`
114
+
115
+ **Purpose:** Automatically remove transparent padding from sprites to optimize memory and atlas packing.
116
+
117
+ **Key Features:**
118
+
119
+ - Alpha threshold detection (0.01)
120
+ - Configurable padding preservation
121
+ - Batch directory processing
122
+ - "Only Necessary" mode to skip optimal sprites
123
+ - Pivot point preservation in normalized coordinates
124
+
125
+ **Common Workflow:**
126
+
127
+ ```
128
+ 1. Open Sprite Cropper
129
+ 2. Add sprite directories to "Input Directories"
130
+ 3. Set padding (e.g., 2px on all sides for outlines)
131
+ 4. Enable "Only Necessary" to skip already-cropped sprites
132
+ 5. Click "Find Sprites To Process" to preview
133
+ 6. Click "Process X Sprites"
134
+ 7. Replace originals with "Cropped_*" versions
135
+
136
+ **Danger Zone — Reference Replacement:**
137
+ - After cropping into `Cropped_*` outputs, you can optionally replace references to original sprites across assets with their cropped counterparts. This is powerful but destructive; review the preview output and ensure you have version control backups before applying.
138
+ ```
139
+
140
+ **Best For:**
141
+
142
+ - Sprites exported with excessive padding
143
+ - Character animation optimization
144
+ - Sprite atlas memory reduction
145
+ - Preparing assets for efficient packing
146
+
147
+ **Performance Impact:** Can reduce texture memory by 30-70% on padded sprites.
148
+
149
+ **Related Tools:**
150
+
151
+ - After cropping, use [Texture Settings Applier](#texture-settings-applier) to batch apply import settings
152
+ - Before creating atlases, run Sprite Cropper → [Sprite Atlas Generator](#sprite-atlas-generator)
153
+ - Use [Sprite Pivot Adjuster](#sprite-pivot-adjuster) after cropping to fix pivot points
154
+
155
+ ---
156
+
157
+ ### Texture Settings Applier
158
+
159
+ **Menu:** `Tools > Wallstop Studios > Unity Helpers > Texture Settings Applier`
160
+
161
+ **Purpose:** Batch apply standardized texture import settings across multiple assets.
162
+
163
+ **Configurable Settings:**
164
+
165
+ - Read/Write enabled
166
+ - Mipmap generation
167
+ - Wrap Mode (Clamp/Repeat/Mirror)
168
+ - Filter Mode (Point/Bilinear/Trilinear)
169
+ - Compression (CompressedHQ/LQ/Uncompressed)
170
+ - Crunch compression
171
+ - Max texture size (32-8192)
172
+ - Texture format
173
+
174
+ **Common Configurations:**
175
+
176
+ **UI Sprites (Pixel-Perfect):**
177
+
178
+ ```
179
+ Filter Mode: Point
180
+ Wrap Mode: Clamp
181
+ Compression: CompressedHQ or None
182
+ Generate Mip Maps: false
183
+ Max Size: 2048 or match source
184
+ ```
185
+
186
+ **Environment Textures:**
187
+
188
+ ```
189
+ Filter Mode: Trilinear
190
+ Wrap Mode: Repeat
191
+ Compression: CompressedHQ
192
+ Generate Mip Maps: true
193
+ Crunch Compression: true
194
+ ```
195
+
196
+ **Character Sprites:**
197
+
198
+ ```
199
+ Filter Mode: Bilinear
200
+ Wrap Mode: Clamp
201
+ Compression: CompressedHQ
202
+ Generate Mip Maps: false
203
+ ```
204
+
205
+ **Workflow:**
206
+
207
+ ```
208
+ 1. Open Texture Settings Applier
209
+ 2. Configure desired settings with checkboxes
210
+ 3. Add textures individually OR add directories
211
+ 4. Click "Set" to apply
212
+ 5. Unity reimports affected textures
213
+ ```
214
+
215
+ **Best For:**
216
+
217
+ - Standardizing settings after art imports
218
+ - Fixing texture quality issues across directories
219
+ - Maintaining performance standards
220
+ - Team consistency enforcement
221
+
222
+ **Related Tools:**
223
+
224
+ - After setting texture settings, use [Sprite Settings Applier](#sprite-settings-applier) for sprite-specific options
225
+ - Use [Sprite Cropper](#sprite-cropper) first to optimize memory before applying settings
226
+ - Combine with [Fit Texture Size](#fit-texture-size) to auto-adjust max texture sizes
227
+
228
+ ---
229
+
230
+ ### Sprite Pivot Adjuster
231
+
232
+ **Menu:** `Tools > Wallstop Studios > Unity Helpers > Sprite Pivot Adjuster`
233
+
234
+ **Purpose:** Compute and apply alpha‑weighted center‑of‑mass pivots in bulk. Produces perceptually centered pivots (ignoring near‑transparent pixels) and speeds re‑imports by skipping unchanged results.
235
+
236
+ **Key Features:**
237
+
238
+ - Alpha‑weighted center‑of‑mass pivot (configurable cutoff)
239
+ - Optional sprite name regex filter
240
+ - Skip unchanged (fuzzy threshold) and Force Reimport
241
+ - Directory picker with recursive processing
242
+
243
+ **Workflow:**
244
+
245
+ ```
246
+ 1) Open Sprite Pivot Adjuster
247
+ 2) Add one or more directories
248
+ 3) (Optional) Set Sprite Name Regex to filter
249
+ 4) Adjust Alpha Cutoff (e.g., 0.01 to ignore fringe pixels)
250
+ 5) Enable “Skip Unchanged” to reimport only when pivot changes
251
+ 6) (Optional) Enable “Force Reimport” to override skip
252
+ 7) Run the adjuster to write importer pivot values
253
+ ```
254
+
255
+ **Best For:**
256
+
257
+ - Ground‑aligning characters while keeping lateral centering
258
+ - Consistent pivots across varied silhouettes
259
+ - Normalizing pivots before animation creation
260
+
261
+ ---
262
+
263
+ ### Sprite Settings Applier
264
+
265
+ **Menu:** `Tools > Wallstop Studios > Unity Helpers > Sprite Settings Applier`
266
+
267
+ **Purpose:** Apply sprite‑specific importer settings in bulk, driven by matchable “profiles” (Any/NameContains/PathContains/Regex/Extension) with priorities. Great for standardizing PPU, pivots, modes, and compression rules across large folders.
268
+
269
+ **Profiles & Matching:**
270
+
271
+ - Create a `SpriteSettingsProfileCollection` ScriptableObject
272
+ - Add one or more profiles (with priority) and choose a match mode:
273
+ - Any, NameContains, PathContains, Extension, Regex
274
+ - Higher priority wins when multiple profiles match
275
+
276
+ **Key Settings (per profile):**
277
+
278
+ - Pixels Per Unit, Pivot, Sprite Mode
279
+ - Generate Mip Maps, Read/Write, Alpha is Transparency
280
+ - Extrude Edges, Wrap Mode, Filter Mode
281
+ - Compression Level and Crunch Compression
282
+ - Texture Type override (ensure Sprite)
283
+
284
+ **Workflow:**
285
+
286
+ ```
287
+ 1) Create a SpriteSettingsProfileCollection (Assets > Create > … if available) or configure profiles in the window
288
+ 2) Open Sprite Settings Applier
289
+ 3) Add directories and/or explicit sprites
290
+ 4) Choose which profile(s) to apply and click Set
291
+ 5) Unity reimports affected sprites
292
+ ```
293
+
294
+ **Best For:**
295
+
296
+ - Enforcing project‑wide sprite import standards
297
+ - Fixing inconsistent PPU/pivots automatically
298
+ - Applying different settings per folder/pattern (via Regex/Path)
299
+
300
+ ---
301
+
302
+ ### Texture Resizer
303
+
304
+ **Menu:** `Tools > Wallstop Studios > Unity Helpers > Texture Resizer`
305
+
306
+ **Purpose:** Batch resize textures using bilinear or point filtering algorithms with configurable scaling multipliers.
307
+
308
+ **Configuration Options:**
309
+
310
+ - **textures:** Manually selected textures to resize
311
+ - **textureSourcePaths:** Drag folders to process all textures within
312
+ - **numResizes:** Number of resize iterations to apply
313
+ - **scalingResizeAlgorithm:** Bilinear (smooth) or Point (pixel-perfect)
314
+ - **pixelsPerUnit:** Base PPU for scaling calculations
315
+ - **widthMultiplier:** Width scaling factor (default: 0.54)
316
+ - **heightMultiplier:** Height scaling factor (default: 0.245)
317
+
318
+ **How It Works:**
319
+
320
+ 1. For each texture, calculates: `extraWidth = width / (PPU * widthMultiplier)`
321
+ 2. Resizes to `newSize = (width + extraWidth, height + extraHeight)`
322
+ 3. Repeats for `numResizes` iterations
323
+ 4. Overwrites original PNG files
324
+
325
+ **Workflow:**
326
+
327
+ ```
328
+ 1. Open Texture Resizer wizard
329
+ 2. Add textures manually OR drag texture folders
330
+ 3. Set algorithm (Bilinear for smooth, Point for pixel art)
331
+ 4. Configure PPU and multipliers
332
+ 5. Set number of resize passes
333
+ 6. Click "Resize" to apply
334
+ ```
335
+
336
+ **Resize Algorithms:**
337
+
338
+ **Bilinear:**
339
+
340
+ - Smooth interpolation
341
+ - Good for photographic/realistic textures
342
+ - Prevents harsh edges
343
+ - Slight blur on upscaling
344
+
345
+ **Point:**
346
+
347
+ - Nearest-neighbor sampling
348
+ - Perfect for pixel art
349
+ - Maintains sharp edges
350
+ - No interpolation blur
351
+
352
+ **Best For:**
353
+
354
+ - Batch upscaling sprites
355
+ - Standardizing texture dimensions
356
+ - Preparing assets for specific PPU
357
+ - Pixel art scaling (use Point)
358
+ - Multiple resize passes for gradual scaling
359
+
360
+ **Important Notes:**
361
+
362
+ - **Destructive operation:** Overwrites original files
363
+ - Textures are made readable automatically
364
+ - Changes are permanent (backup originals!)
365
+ - AssetDatabase refreshes after completion
366
+
367
+ ---
368
+
369
+ ### Fit Texture Size
370
+
371
+ **Menu:** `Tools > Wallstop Studios > Unity Helpers > Fit Texture Size`
372
+
373
+ **Purpose:** Automatically adjust texture max size import settings to match actual source dimensions (power-of-two).
374
+
375
+ **Key Features:**
376
+
377
+ - **Grow and Shrink:** Adjust to perfect fit (default)
378
+ - **Grow Only:** Only increase max size if too small
379
+ - **Shrink Only:** Only decrease max size if too large
380
+ - **Preview mode:** Calculate changes before applying
381
+ - **Batch processing:** Process entire directories at once
382
+
383
+ **Fit Modes:**
384
+
385
+ **GrowAndShrink:**
386
+
387
+ - Sets max texture size to nearest power-of-2 that fits source
388
+ - Example: 1500x800 source → 2048 max size
389
+ - Prevents both over-allocation and quality loss
390
+
391
+ **GrowOnly:**
392
+
393
+ - Increases max size if source is larger
394
+ - Never decreases size
395
+ - Useful for preventing quality loss on imports
396
+
397
+ **ShrinkOnly:**
398
+
399
+ - Decreases max size if source is smaller
400
+ - Never increases size
401
+ - Useful for reducing memory usage
402
+
403
+ **Workflow:**
404
+
405
+ ```
406
+ 1. Open Fit Texture Size
407
+ 2. Select Fit Mode (GrowAndShrink/GrowOnly/ShrinkOnly)
408
+ 3. Add texture folders to process
409
+ 4. Click "Calculate Potential Changes" to preview
410
+ 5. Review how many textures will be modified
411
+ 6. Click "Run Fit Texture Size" to apply
412
+ ```
413
+
414
+ **Example:**
415
+
416
+ ```
417
+ Source Texture: 1920x1080 pixels
418
+ Current Max Size: 512
419
+ Fit Mode: GrowAndShrink
420
+ Result: Max Size → 2048 (fits source dimensions)
421
+
422
+ Source Texture: 64x64 pixels
423
+ Current Max Size: 2048
424
+ Fit Mode: ShrinkOnly
425
+ Result: Max Size → 64 (matches source)
426
+ ```
427
+
428
+ **Algorithm:**
429
+
430
+ - Reads actual source width/height (not imported size)
431
+ - Calculates required power-of-2: `size = max(width, height)`
432
+ - Rounds up to next power-of-2 (32, 64, 128, 256, 512, 1024, 2048, 4096, 8192)
433
+ - Applies based on fit mode constraints
434
+
435
+ **Best For:**
436
+
437
+ - Fixing texture import settings after bulk imports
438
+ - Optimizing memory usage automatically
439
+ - Ensuring quality matches source resolution
440
+ - Standardizing texture settings across project
441
+ - Build size optimization
442
+
443
+ **Performance:**
444
+
445
+ - Non-destructive (only changes import settings)
446
+ - Uses AssetDatabase batch editing for speed
447
+ - Progress bar for large operations
448
+ - Cancellable during processing
449
+
450
+ ---
451
+
452
+ ## Animation Tools
453
+
454
+ ### Sprite Animation Editor (Animation Viewer Window)
455
+
456
+ **Menu:** `Tools > Wallstop Studios > Unity Helpers > Sprite Animation Editor`
457
+
458
+ **Purpose:** Visual editor for 2D sprite animations with real-time preview and frame manipulation.
459
+
460
+ **Key Features:**
461
+
462
+ - **Real-time preview:** See animations as you edit
463
+ - **Multi-layer support:** Preview multiple clips simultaneously
464
+ - **Drag-and-drop reordering:** Intuitive frame organization
465
+ - **FPS control:** Adjust playback speed independently
466
+ - **Frame management:** Add/remove/reorder/duplicate frames
467
+ - **Multi-file browser:** Quick batch loading
468
+ - **Binding preservation:** Maintains SpriteRenderer paths
469
+
470
+ **Typical Workflow:**
471
+
472
+ ```
473
+ 1. Open Sprite Animation Editor
474
+ 2. Click "Browse Clips (Multi)..." to select animations
475
+ 3. Click a loaded clip in left panel to edit
476
+ 4. Drag frames in "Frames" panel to reorder
477
+ 5. Adjust FPS field and click "Apply FPS"
478
+ 6. Preview updates in real-time
479
+ 7. Click "Save Clip" to write changes
480
+ ```
481
+
482
+ **Example Session:**
483
+
484
+ ```
485
+ // Edit walk cycle animation:
486
+ 1. Load "PlayerWalk.anim"
487
+ 2. Preview plays at original 12 FPS
488
+ 3. Drag frame 3 to position 1 (change starting pose)
489
+ 4. Change FPS to 10 for slower walk
490
+ 5. Click "Apply FPS" to preview
491
+ 6. Click "Save Clip" to finalize
492
+ ```
493
+
494
+ **Best For:**
495
+
496
+ - Tweaking animation timing without re-export
497
+ - Creating variations by reordering frames
498
+ - Previewing character animation sets
499
+ - Testing different FPS values
500
+ - Quick prototyping from sprite sheets
501
+ - Fixing frame order mistakes
502
+
503
+ **Tips:**
504
+
505
+ - Use multi-file browser for entire animation sets
506
+ - Preview updates automatically while dragging
507
+ - FPS changes only affect preview until saved
508
+ - Type frame numbers for precise positioning
509
+ - Press Enter to apply frame changes
510
+
511
+ ---
512
+
513
+ ### Animation Creator
514
+
515
+ **Menu:** `Tools > Wallstop Studios > Unity Helpers > Animation Creator`
516
+
517
+ **Purpose:** Bulk‑create AnimationClips from sprite naming patterns — one‑click generation from folders of sprites. Eliminates manual clip setup and ensures consistent naming, ordering, and FPS/loop settings.
518
+
519
+ **Problems Solved:**
520
+
521
+ - Manual and error‑prone clip creation from many sprites
522
+ - Inconsistent frame ordering (lexicographic vs numeric)
523
+ - Collisions/duplicates when generating many clips at once
524
+ - Repeating busywork when adding suffixes/prefixes across sets
525
+
526
+ **Key Features:**
527
+
528
+ - Folder sources with regex sprite filtering (`spriteNameRegex`)
529
+ - Auto‑parse into clips using naming patterns (one click)
530
+ - Custom group regex with named groups `(?<base>)(?<index>)`
531
+ - Case‑insensitive grouping and numeric sorting toggle
532
+ - Prefix clip names with leaf folder or full folder path
533
+ - Auto‑parse name prefix/suffix and duplicate‑name resolution
534
+ - Dry‑run and preview (see groups and final asset paths)
535
+ - Per‑clip FPS and loop flag; bulk name append/remove
536
+ - “Populate First Slot with X Matched Sprites” helper
537
+
538
+ **Common Naming Patterns (auto‑detected):**
539
+
540
+ ```
541
+ Player_Idle_0.png, Player_Idle_1.png, ... // base: Player_Idle, index: 0..N
542
+ slime-walk-01.png, slime-walk-02.png // base: slime-walk, index: 1..N
543
+ Mage/Attack (0).png, Mage/Attack (1).png // base: Mage_Attack, index: 0..N (folder prefix optional)
544
+ ```
545
+
546
+ **Custom Group Regex Examples:**
547
+
548
+ ```
549
+ // Named groups are optional but powerful when needed
550
+ ^(?<base>.*?)(?:_|\s|-)?(?<index>\d+)\.[Pp][Nn][Gg]$ // base + trailing digits
551
+ ^Enemy_(?<base>Walk)_(?<index>\d+)$ // narrow to specific clip type
552
+ ```
553
+
554
+ **How To Use (one‑click flow):**
555
+
556
+ ```
557
+ 1) Open Animation Creator
558
+ 2) Add one or more source folders
559
+ 3) (Optional) Set sprite filter regex to narrow matches
560
+ 4) Click “Auto‑Parse Matched Sprites into Animations”
561
+ 5) Review generated Animation Data (set FPS/loop per clip)
562
+ 6) Click “Create” (Action button) to write .anim assets
563
+ ```
564
+
565
+ **Preview & Safety:**
566
+
567
+ - Use “Generate Auto‑Parse Preview” to see detected groups
568
+ - Use “Generate Dry‑Run Apply” to see final clip names/paths
569
+ - Toggle “Strict Numeric Ordering” to avoid `1,10,11,2,…` issues
570
+ - Enable “Resolve Duplicate Animation Names” to auto‑rename
571
+
572
+ **Tips:**
573
+
574
+ - Keep sprite names consistent (e.g., `Name_Action_###`)
575
+ - Use the built‑in Regex Tester before applying
576
+ - Use folder name/path prefixing to avoid collisions across sets
577
+ - Batch rename tokens with the “Bulk Naming Operations” section
578
+
579
+ **Best For:**
580
+
581
+ - One‑click bulk clip creation from sprite folders
582
+ - Converting exported frame sequences into clips
583
+ - Large projects standardizing animation naming and FPS/loop
584
+
585
+ **Related Tools:**
586
+
587
+ - After creating animations, edit timing with [Sprite Animation Editor](#sprite-animation-editor-animation-viewer-window)
588
+ - Add events to created animations with [Animation Event Editor](#animation-event-editor)
589
+ - Organize animations between folders with [Animation Copier](#animation-copier)
590
+ - For sprite sheets (not sequences), use [Sprite Sheet Animation Creator](#sprite-sheet-animation-creator)
591
+
592
+ ---
593
+
594
+ ### Animation Copier
595
+
596
+ **Menu:** `Tools > Wallstop Studios > Unity Helpers > Animation Copier`
597
+
598
+ **Purpose:** Analyze, duplicate, and synchronize AnimationClips between source and destination folders with previews, dry‑runs, and cleanup actions.
599
+
600
+ **What It Analyzes:**
601
+
602
+ - New: exist in source but not destination
603
+ - Changed: exist in both but differ (hash mismatch)
604
+ - Unchanged: identical in both (duplicates)
605
+ - Destination Orphans: only in destination
606
+
607
+ **Workflow:**
608
+
609
+ ```
610
+ 1) Open Animation Copier
611
+ 2) Select Source Path (e.g., Assets/Sprites/Animations)
612
+ 3) Select Destination Path (e.g., Assets/Animations)
613
+ 4) Click “Analyze Source & Destination”
614
+ 5) Review New/Changed/Unchanged/Orphans tabs (filter/sort)
615
+ 6) Choose a copy mode:
616
+ - Copy New / Copy Changed / Copy All (optional force replace)
617
+ 7) (Optional) Dry Run to preview without writing
618
+ 8) Use Cleanup:
619
+ - Delete Unchanged Source Duplicates
620
+ - Delete Destination Orphans
621
+ ```
622
+
623
+ **Safety & Options:**
624
+
625
+ - Dry Run (no changes) for all copy/cleanup operations
626
+ - “Include Unchanged in Copy All” to force overwrite duplicates
627
+ - Open Source/Destination folder buttons for quick navigation
628
+
629
+ **Best For:**
630
+
631
+ - Creating animation variants and organizing libraries
632
+ - Syncing generated clips into your canonical destination
633
+ - Keeping animation folders tidy with cleanup actions
634
+
635
+ ---
636
+
637
+ ### Sprite Sheet Animation Creator
638
+
639
+ **Menu:** `Tools > Wallstop Studios > Unity Helpers > Sprite Sheet Animation Creator`
640
+
641
+ **Purpose:** Turn a sliced sprite sheet into one or more AnimationClips with live preview, drag‑to‑select sprite ranges, and per‑clip FPS/loop/cycle offset.
642
+
643
+ **Key Features:**
644
+
645
+ - Load a multi‑sprite Texture2D (sliced in the Sprite Editor)
646
+ - Drag‑select sprite ranges to define clips visually
647
+ - Constant FPS or curve‑based frame rate per clip
648
+ - Live preview/playback controls and scrubbing
649
+ - Loop toggle and cycle offset per clip
650
+ - Safe asset creation with unique file names
651
+
652
+ **Usage:**
653
+
654
+ ```
655
+ 1) Open Sprite Sheet Animation Creator
656
+ 2) Drag a sliced Texture2D (or use the object field)
657
+ 3) Select frames (drag across thumbnails) to define a clip
658
+ 4) Name the clip, set FPS/curve, loop, cycle offset
659
+ 5) Repeat to add multiple definitions
660
+ 6) Click “Generate Animations” and choose output folder
661
+ ```
662
+
663
+ **Best For:**
664
+
665
+ - Converting sprite sheets to animation clips with fine control
666
+ - Mixed timings using AnimationCurves for frame pacing
667
+ - Fast iteration via visual selection and preview
668
+
669
+ ---
670
+
671
+ ### Animation Event Editor
672
+
673
+ **Menu:** `Tools > Wallstop Studios > Unity Helpers > AnimationEvent Editor`
674
+
675
+ **Purpose:** Advanced visual editor for creating and managing animation events with sprite preview, method auto-discovery, and parameter editing.
676
+
677
+ **Key Features:**
678
+
679
+ - **Sprite preview:** See the sprite at each event time
680
+ - **Method auto-discovery:** Automatically finds valid animation event methods
681
+ - **Explicit mode:** Restrict to methods marked with `[AnimationEvent]` attribute
682
+ - **Parameter editing:** Visual editors for int, float, string, object, and enum parameters
683
+ - **Frame-based editing:** Work with frame numbers instead of time values
684
+ - **Search filtering:** Filter types and methods by search terms
685
+ - **Real-time validation:** Shows invalid texture rects and read/write issues
686
+
687
+ **Workflow:**
688
+
689
+ ```
690
+ 1. Open Animation Event Editor
691
+ 2. Drag Animator component into "Animator Object" field
692
+ 3. Select animation from dropdown (or use Animation Search)
693
+ 4. Set "FrameIndex" for new event
694
+ 5. Click "Add Event" to create event at that frame
695
+ 6. Configure event:
696
+ a. Select TypeName (MonoBehaviour with event methods)
697
+ b. Select MethodName from available methods
698
+ c. Set parameters (int, float, string, object, enum)
699
+ 7. Reorder events if needed (Move Up/Down buttons)
700
+ 8. Click "Save" to write changes to animation clip
701
+ ```
702
+
703
+ **Modes:**
704
+
705
+ **Explicit Mode (Default):**
706
+
707
+ - Only shows methods marked with `[AnimationEvent]` attribute
708
+ - Cleaner, curated list of event methods
709
+ - Recommended for large projects
710
+
711
+ **Non-Explicit Mode:**
712
+
713
+ - Shows all public methods with valid signatures
714
+ - Use "Search" field to filter by type/method name
715
+ - Good for discovery and prototyping
716
+
717
+ **Control Frame Time:**
718
+
719
+ - Disabled: Work with frame indices (snaps to frames)
720
+ - Enabled: Edit precise time values (floating point)
721
+
722
+ **Sprite Preview:**
723
+
724
+ - Automatically shows sprite at event time
725
+ - Requires texture Read/Write enabled
726
+ - "Fix" button to enable Read/Write if needed
727
+ - Warns if sprite packed too tightly
728
+
729
+ **Event Management:**
730
+
731
+ **Adding Events:**
732
+
733
+ 1. Set "FrameIndex" to desired frame
734
+ 2. Click "Add Event"
735
+ 3. Event created at frame time
736
+
737
+ **Editing Events:**
738
+
739
+ - Change frame/time directly
740
+ - Select type and method from dropdowns
741
+ - Edit parameters based on method signature
742
+ - Override enum values if needed
743
+
744
+ **Reordering:**
745
+
746
+ - "Move Up"/"Move Down" for events at same time
747
+ - "Re-Order" button sorts all events by time
748
+ - Maintains proper event order for playback
749
+
750
+ **Resetting:**
751
+
752
+ - Per-event "Reset" button (reverts to saved state)
753
+ - Global "Reset" button (discards all changes)
754
+
755
+ **Parameter Types Supported:**
756
+
757
+ - `int` - IntField editor
758
+ - `float` - FloatField editor
759
+ - `string` - TextField editor
760
+ - `UnityEngine.Object` - ObjectField editor
761
+ - `Enum` - Dropdown with override option
762
+
763
+ **Best For:**
764
+
765
+ - Complex animation event setup
766
+ - Character combat systems
767
+ - Footstep/sound effect events
768
+ - Particle effect triggers
769
+ - Animation state notifications
770
+ - Visual debugging of event timing
771
+
772
+ **Tips:**
773
+
774
+ - Enable "Explicit Mode" to reduce clutter
775
+ - Use "Animation Search" for quick filtering
776
+ - Frame numbers are more intuitive than time values
777
+ - Sprite preview helps verify timing
778
+ - Multiple events can exist at same frame
779
+ - Use "Re-Order" before saving for consistency
780
+
781
+ **Common Method Signatures:**
782
+
783
+ ```csharp
784
+ using WallstopStudios.UnityHelpers.Core.Attributes;
785
+
786
+ public class CharacterAnimationEvents : MonoBehaviour
787
+ {
788
+ [AnimationEvent] // Shows in Explicit Mode
789
+ public void PlayFootstep() { }
790
+
791
+ [AnimationEvent]
792
+ public void SpawnEffect(string effectName) { }
793
+
794
+ [AnimationEvent]
795
+ public void ApplyDamage(int damage) { }
796
+
797
+ [AnimationEvent]
798
+ public void SetAnimationState(CharacterState state) { } // Enum parameter
799
+ }
800
+ ```
801
+
802
+ ---
803
+
804
+ ## Sprite Atlas Tools
805
+
806
+ ### Sprite Atlas Generator
807
+
808
+ **Menu:** `Tools > Wallstop Studios > Unity Helpers > Sprite Atlas Generator`
809
+
810
+ **Purpose:** Comprehensive tool for creating and managing Unity Sprite Atlases with regex-based sprite selection, label filtering, and automated packing.
811
+
812
+ **Key Features:**
813
+
814
+ - **Regex-based sprite selection:** Use regular expressions to automatically find sprites
815
+ - **Label filtering:** Select sprites based on Unity asset labels
816
+ - **Multiple source folders:** Configure different folders with different selection criteria
817
+ - **Batch atlas generation:** Create/update multiple atlases at once
818
+ - **Advanced packing settings:** Control texture size, compression, padding, rotation
819
+ - **Source sprite utilities:** Force uncompressed settings for source sprites
820
+ - **Scan and preview:** See what sprites will be added/removed before applying changes
821
+
822
+ **Configuration Asset:**
823
+ Create configurations via `Assets > Create > Wallstop Studios > Unity Helpers > Scriptable Sprite Atlas Config`
824
+
825
+ **ScriptableSpriteAtlas Configuration:**
826
+
827
+ ```
828
+ Sprite Sources:
829
+ - spritesToPack: Manually added sprites (always included)
830
+ - sourceFolderEntries: Define folders with regex/label filters
831
+
832
+ Source Folder Entry Options:
833
+ - folderPath: Folder to scan (relative to Assets/)
834
+ - selectionMode: Regex | Labels | Both
835
+ - regexes: List of regex patterns (all must match - AND logic)
836
+ - regexAndTagLogic: How to combine regex and labels (And/Or)
837
+ - labelSelectionMode: All | AnyOf
838
+ - labels: Asset labels to filter by
839
+
840
+ Output Atlas Settings:
841
+ - outputSpriteAtlasDirectory: Where to save .spriteatlas
842
+ - outputSpriteAtlasName: Name of atlas file
843
+
844
+ Packing Settings:
845
+ - maxTextureSize: 32-16384 (power of 2)
846
+ - enableRotation: Allow sprite rotation for better packing
847
+ - padding: Pixels between sprites (0-32)
848
+ - enableTightPacking: Optimize packing density
849
+ - enableAlphaDilation: Dilate alpha edges
850
+ - readWriteEnabled: Enable Read/Write on atlas texture
851
+
852
+ Compression Settings:
853
+ - useCrunchCompression: Enable crunch compression
854
+ - crunchCompressionLevel: 0-100 quality
855
+ - compression: Compressed/CompressedHQ/Uncompressed
856
+ ```
857
+
858
+ **Typical Workflow:**
859
+
860
+ ```
861
+ 1. Open Sprite Atlas Generator
862
+ 2. Click "Create New Config in 'Assets/Data'"
863
+ 3. Configure the new atlas:
864
+ a. Set output name and directory
865
+ b. Click "Add New Source Folder Entry"
866
+ c. Select folder containing sprites
867
+ d. Add regex patterns (e.g., "^character_.*\\.png$")
868
+ e. Or/and add labels for filtering
869
+ f. Configure packing settings (texture size, padding, etc.)
870
+ 4. Click "Scan Folders for '[config name]'"
871
+ 5. Review sprites to add/remove
872
+ 6. Click "Add X Sprites" to populate the list
873
+ 7. Click "Generate/Update '[atlas name].spriteatlas' ONLY"
874
+ 8. Click "Pack All Generated Sprite Atlases" to pack textures
875
+ ```
876
+
877
+ **Example Configurations:**
878
+
879
+ **Character Sprites Atlas:**
880
+
881
+ ```
882
+ folderPath: Assets/Sprites/Characters
883
+ selectionMode: Regex
884
+ regexes: ["^player_.*\\.png$", ".*_idle_.*"]
885
+ maxTextureSize: 2048
886
+ padding: 4
887
+ compression: CompressedHQ
888
+ ```
889
+
890
+ **UI Icons by Label:**
891
+
892
+ ```
893
+ folderPath: Assets/Sprites/UI
894
+ selectionMode: Labels
895
+ labelSelectionMode: AnyOf
896
+ labels: ["icon", "ui"]
897
+ maxTextureSize: 1024
898
+ padding: 2
899
+ ```
900
+
901
+ **Combined Regex + Labels:**
902
+
903
+ ```
904
+ folderPath: Assets/Sprites/Effects
905
+ selectionMode: Regex | Labels
906
+ regexes: ["^vfx_.*"]
907
+ labels: ["particle"]
908
+ regexAndTagLogic: And
909
+ maxTextureSize: 2048
910
+ ```
911
+
912
+ **Advanced Features:**
913
+
914
+ **Scan and Preview:**
915
+
916
+ - Shows exact sprite count that will be added/removed
917
+ - Prevents accidental overwrites
918
+ - Displays current vs. scanned sprite lists
919
+
920
+ **Source Sprite Utilities:**
921
+
922
+ - "Force Uncompressed for X Source Sprites" button
923
+ - Sets source sprites to uncompressed (RGBA32/RGB24)
924
+ - Disables crunch compression on sources
925
+ - Ensures maximum quality before atlas packing
926
+
927
+ **Batch Operations:**
928
+
929
+ - "Generate/Update All .spriteatlas Assets" - processes all configs
930
+ - "Pack All Generated Sprite Atlases" - packs all atlases in project
931
+ - Progress bars for long operations
932
+
933
+ **Best For:**
934
+
935
+ - Managing large sprite collections
936
+ - Automating sprite atlas creation
937
+ - Consistent atlas configuration across team
938
+ - Dynamic sprite selection based on naming conventions
939
+ - Organizing sprites by labels/tags
940
+ - Build pipeline atlas generation
941
+
942
+ **Tips:**
943
+
944
+ - Use regex for consistent naming patterns
945
+ - Combine multiple source folders for complex selections
946
+ - Test regex patterns with "Scan Folders" before generating
947
+ - Keep source sprites uncompressed for best atlas quality
948
+ - Use labels for cross-folder sprite grouping
949
+ - Regular expressions use case-insensitive matching
950
+
951
+ **Common Issues:**
952
+
953
+ - **No sprites found:** Check regex patterns and folder paths
954
+ - **Sprites not packing:** Run "Pack All Generated Sprite Atlases"
955
+ - **Quality issues:** Use "Force Uncompressed" on source sprites
956
+ - **Regex errors:** Validate patterns (will log specific errors)
957
+
958
+ ---
959
+
960
+ <a id="validation--quality-tools"></a>
961
+ <a id="validation-quality-tools"></a>
962
+
963
+ ## Validation & Quality Tools
964
+
965
+ ### Prefab Checker
966
+
967
+ **Menu:** `Tools > Wallstop Studios > Unity Helpers > Prefab Checker`
968
+
969
+ **Purpose:** Comprehensive prefab validation to detect configuration issues before runtime.
970
+
971
+ **Validation Checks:**
972
+
973
+ | Check | Description | Severity |
974
+ | -------------------------------- | --------------------------------------------- | ------------ |
975
+ | **Missing Scripts** | Detects broken MonoBehaviour references | Critical |
976
+ | **Nulls in Lists/Arrays** | Finds null elements in serialized collections | High |
977
+ | **Missing Required Components** | Validates [RequireComponent] dependencies | Critical |
978
+ | **Empty String Fields** | Identifies unset string fields | Medium |
979
+ | **Null Object References** | Finds unassigned UnityEngine.Object fields | High |
980
+ | **Only if [ValidateAssignment]** | Restricts null checks to annotated fields | Configurable |
981
+ | **Disabled Root GameObject** | Flags inactive prefab roots | Medium |
982
+ | **Disabled Components** | Reports disabled Behaviour components | Low |
983
+
984
+ **Typical Validation Workflow:**
985
+
986
+ ```
987
+ // Before committing prefab changes:
988
+ 1. Open Prefab Checker
989
+ 2. Enable relevant checks (especially Missing Scripts, Required Components)
990
+ 3. Add "Assets/Prefabs" folder
991
+ 4. Click "Run Checks"
992
+ 5. Review console output (click to select problematic prefabs)
993
+ 6. Fix reported issues
994
+ 7. Re-run checks to verify
995
+ 8. Commit changes
996
+ ```
997
+
998
+ **CI/CD Integration:**
999
+
1000
+ ```
1001
+ // Can be scripted for automated builds
1002
+ - Run validation on changed prefab folders
1003
+ - Parse console output for errors
1004
+ - Fail build if critical issues found
1005
+ ```
1006
+
1007
+ **Best Practices:**
1008
+
1009
+ - Use `[ValidateAssignment]` attribute on critical fields
1010
+ - Run checks before committing prefab changes
1011
+ - Enable "Only if [ValidateAssignment]" to reduce noise
1012
+ - Fix "Missing Required Components" errors immediately
1013
+ - Schedule regular validation runs
1014
+
1015
+ **Performance:** Uses cached reflection for fast repeated checks.
1016
+
1017
+ **Best For:**
1018
+
1019
+ - Pre-build validation
1020
+ - Code review assistance
1021
+ - Team onboarding with prefab standards
1022
+ - Migration validation after Unity upgrades
1023
+ - Continuous integration health checks
1024
+
1025
+ ---
1026
+
1027
+ ## Custom Component Editors
1028
+
1029
+ These custom inspectors enhance Unity components with additional functionality and convenience features.
1030
+
1031
+ ### MatchColliderToSprite Editor
1032
+
1033
+ **Component:** `MatchColliderToSprite`
1034
+
1035
+ **Purpose:** Provides a button in the inspector to manually trigger collider-to-sprite matching.
1036
+
1037
+ **Features:**
1038
+
1039
+ - "MatchColliderToSprite" button in inspector
1040
+ - Manually invoke `OnValidate()` to update collider
1041
+ - Useful when automatic updates don't trigger
1042
+
1043
+ **When to Use:**
1044
+
1045
+ - After changing sprite at runtime
1046
+ - When collider doesn't match sprite automatically
1047
+ - Manual override of collider shape
1048
+
1049
+ ---
1050
+
1051
+ ### PolygonCollider2DOptimizer Editor
1052
+
1053
+ **Component:** `PolygonCollider2DOptimizer`
1054
+
1055
+ **Purpose:** Custom inspector for optimizing PolygonCollider2D point counts with configurable tolerance.
1056
+
1057
+ **Features:**
1058
+
1059
+ - **tolerance:** Adjustable simplification tolerance
1060
+ - **Optimize button:** Manually trigger polygon simplification
1061
+ - Reduces collider complexity while maintaining shape
1062
+
1063
+ **How It Works:**
1064
+
1065
+ 1. Adjust tolerance slider (lower = more accurate, higher = simpler)
1066
+ 2. Click "Optimize" to simplify polygon points
1067
+ 3. Collider updates with reduced point count
1068
+
1069
+ **Best For:**
1070
+
1071
+ - Reducing physics performance overhead
1072
+ - Simplifying complex sprite colliders
1073
+ - Balancing accuracy vs. performance
1074
+ - Editor-time optimization of imported sprites
1075
+
1076
+ **Tolerance Guide:**
1077
+
1078
+ - 0.0 - 0.1: High accuracy, minimal simplification
1079
+ - 0.1 - 0.5: Balanced (recommended)
1080
+ - 0.5 - 2.0: Aggressive simplification
1081
+ - 2.0+: Maximum simplification (may lose detail)
1082
+
1083
+ ---
1084
+
1085
+ ### EnhancedImage Editor
1086
+
1087
+ **Component:** `EnhancedImage` (extends Unity's Image)
1088
+
1089
+ **Purpose:** Extended inspector for EnhancedImage with HDR color support and shape mask configuration.
1090
+
1091
+ **Additional Properties:**
1092
+
1093
+ - **HDR Color:** High dynamic range color multiplication
1094
+ - **Shape Mask:** Texture2D for masking/shaping the image
1095
+ - **Material Auto-Fix:** Detects and fixes incorrect material assignment
1096
+
1097
+ **Features:**
1098
+
1099
+ **Material Detection:**
1100
+
1101
+ - Warns if using "Default UI Material"
1102
+ - "Incorrect Material Detected - Try Fix?" button (yellow)
1103
+ - Automatically finds and applies correct BackgroundMask material
1104
+ - Material path: `Shaders/Materials/BackgroundMask-Material.mat`
1105
+
1106
+ **Shape Mask:**
1107
+
1108
+ - Requires shader with `_ShapeMask` texture2D property
1109
+ - Allows complex masking effects
1110
+ - Integrates with custom shader system
1111
+
1112
+ **HDR Color:**
1113
+
1114
+ - Color picker with HDR support
1115
+ - Intensity values > 1.0 for bloom/glow effects
1116
+ - Works with post-processing
1117
+
1118
+ **Best For:**
1119
+
1120
+ - UI elements requiring HDR effects
1121
+ - Masked UI images
1122
+ - Custom shaped UI elements
1123
+ - Material-based UI effects
1124
+
1125
+ **Workflow:**
1126
+
1127
+ ```
1128
+ 1. Add EnhancedImage component to UI GameObject
1129
+ 2. If yellow "Fix Material" button appears, click it
1130
+ 3. Configure HDR Color for glow/intensity
1131
+ 4. Assign Shape Mask texture if needed
1132
+ 5. Shader must expose _ShapeMask property
1133
+ ```
1134
+
1135
+ **Icon Customization:**
1136
+
1137
+ - Automatically uses Image icon in project/hierarchy
1138
+ - Seamless integration with standard Unity UI
1139
+
1140
+ ---
1141
+
1142
+ <a id="property-drawers--attributes"></a>
1143
+ <a id="property-drawers-attributes"></a>
1144
+
1145
+ ## Property Drawers & Attributes
1146
+
1147
+ Custom property drawers enhance the inspector with conditional display, validation, and specialized input fields.
1148
+
1149
+ ### WShowIf Property Drawer
1150
+
1151
+ **Attribute:** `[WShowIf]`
1152
+
1153
+ **Purpose:** Conditionally show/hide fields in inspector based on boolean fields or enum values.
1154
+
1155
+ **Syntax:**
1156
+
1157
+ ```csharp
1158
+ [WShowIf("fieldName")]
1159
+ [WShowIf("fieldName", inverse = true)]
1160
+ [WShowIf("fieldName", expectedValues = new object[] { value1, value2 })]
1161
+ ```
1162
+
1163
+ **Examples:**
1164
+
1165
+ **Boolean Condition:**
1166
+
1167
+ ```csharp
1168
+ public bool enableFeature;
1169
+
1170
+ [WShowIf(nameof(enableFeature))]
1171
+ public float featureIntensity;
1172
+
1173
+ [WShowIf(nameof(enableFeature), inverse = true)]
1174
+ public string disabledMessage;
1175
+ ```
1176
+
1177
+ **Enum Condition:**
1178
+
1179
+ ```csharp
1180
+ public enum Mode { Simple, Advanced, Expert }
1181
+ public Mode currentMode;
1182
+
1183
+ [WShowIf(nameof(currentMode), expectedValues = new object[] { Mode.Advanced, Mode.Expert })]
1184
+ public int advancedSetting;
1185
+ ```
1186
+
1187
+ **Multiple Values:**
1188
+
1189
+ ```csharp
1190
+ public SpriteSelectionMode selectionMode;
1191
+
1192
+ [WShowIf(nameof(selectionMode), expectedValues = new object[] {
1193
+ SpriteSelectionMode.Regex,
1194
+ SpriteSelectionMode.Regex | SpriteSelectionMode.Labels
1195
+ })]
1196
+ public List<string> regexPatterns;
1197
+ ```
1198
+
1199
+ **Features:**
1200
+
1201
+ - Hides field when condition false (0 height)
1202
+ - Supports boolean and enum conditions
1203
+ - `inverse` parameter for NOT logic
1204
+ - `expectedValues` for checking against specific values
1205
+ - Falls back to reflection for non-SerializedProperty fields
1206
+ - Cached reflection for performance
1207
+
1208
+ **Best For:**
1209
+
1210
+ - Conditional inspector fields
1211
+ - Reducing inspector clutter
1212
+ - Mode-based configuration UI
1213
+ - Complex nested settings
1214
+
1215
+ ---
1216
+
1217
+ ### StringInList Property Drawer
1218
+
1219
+ **Attribute:** `[StringInList]`
1220
+
1221
+ **Purpose:** Display string or int fields as dropdown with predefined options.
1222
+
1223
+ **Syntax:**
1224
+
1225
+ ```csharp
1226
+ // Static array
1227
+ [StringInList("Option1", "Option2", "Option3")]
1228
+ public string selectedOption;
1229
+
1230
+ // Method reference
1231
+ [StringInList(typeof(MyClass), nameof(MyClass.GetOptions))]
1232
+ public string dynamicOption;
1233
+
1234
+ // With int field
1235
+ [StringInList("Low", "Medium", "High")]
1236
+ public int priorityIndex;
1237
+ ```
1238
+
1239
+ **Dynamic Options Example:**
1240
+
1241
+ ```csharp
1242
+ using WallstopStudios.UnityHelpers.Core.Helper;
1243
+
1244
+ public class MySettings
1245
+ {
1246
+ [StringInList(typeof(Helpers), nameof(Helpers.GetAllSpriteLabelNames))]
1247
+ public List<string> selectedLabels;
1248
+ }
1249
+ ```
1250
+
1251
+ **Features:**
1252
+
1253
+ - String fields: Dropdown with string values
1254
+ - Int fields: Dropdown with indices
1255
+ - Arrays/Lists: Shows size field + dropdown per element
1256
+ - Dynamic lists via static method reference
1257
+ - Auto-finds current value in list
1258
+
1259
+ **Best For:**
1260
+
1261
+ - Predefined option selection
1262
+ - Tag/label selection
1263
+ - Enum-like string fields
1264
+ - Dynamic option lists
1265
+ - User-friendly enumerations
1266
+
1267
+ ---
1268
+
1269
+ ### IntDropdown Property Drawer
1270
+
1271
+ **Attribute:** `[IntDropdown]`
1272
+
1273
+ **Purpose:** Display int fields as dropdown with specific integer options.
1274
+
1275
+ **Syntax:**
1276
+
1277
+ ```csharp
1278
+ [IntDropdown(32, 64, 128, 256, 512, 1024, 2048, 4096, 8192)]
1279
+ public int textureSize;
1280
+
1281
+ [IntDropdown(0, 2, 4, 8, 16, 32)]
1282
+ public int padding;
1283
+ ```
1284
+
1285
+ **Features:**
1286
+
1287
+ - Restricts int values to specific options
1288
+ - Dropdown shows integer values as strings
1289
+ - Prevents invalid values
1290
+ - Visual clarity for constrained integers
1291
+
1292
+ **Best For:**
1293
+
1294
+ - Power-of-two values (texture sizes)
1295
+ - Discrete numeric options
1296
+ - Preventing invalid integer input
1297
+ - Configuration with specific valid values
1298
+
1299
+ **Common Use Cases:**
1300
+
1301
+ ```csharp
1302
+ // Texture sizes (power of 2)
1303
+ [IntDropdown(32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384)]
1304
+ public int maxTextureSize = 2048;
1305
+
1306
+ // Padding options
1307
+ [IntDropdown(0, 2, 4, 8, 16, 32)]
1308
+ public int spritePadding = 4;
1309
+
1310
+ // Quality levels
1311
+ [IntDropdown(0, 1, 2, 3, 4, 5)]
1312
+ public int qualityLevel = 3;
1313
+ ```
1314
+
1315
+ ---
1316
+
1317
+ ### DxReadOnly Property Drawer
1318
+
1319
+ **Attribute:** `[DxReadOnly]`
1320
+
1321
+ **Purpose:** Display fields as read-only in the inspector (grayed out, non-editable).
1322
+
1323
+ **Syntax:**
1324
+
1325
+ ```csharp
1326
+ using WallstopStudios.UnityHelpers.Core.Attributes;
1327
+
1328
+ [DxReadOnly]
1329
+ public int calculatedValue;
1330
+
1331
+ [DxReadOnly]
1332
+ public string currentState;
1333
+ ```
1334
+
1335
+ **Features:**
1336
+
1337
+ - Disables GUI for field
1338
+ - Shows value but prevents editing
1339
+ - Maintains proper height and layout
1340
+ - Works with all property types
1341
+
1342
+ **Best For:**
1343
+
1344
+ - Displaying runtime state
1345
+ - Showing calculated/derived values
1346
+ - Debug information in inspector
1347
+ - Values set by code only
1348
+
1349
+ **Example:**
1350
+
1351
+ ```csharp
1352
+ public class CharacterStats : MonoBehaviour
1353
+ {
1354
+ public int baseHealth = 100;
1355
+ public int healthBonus = 0;
1356
+
1357
+ [DxReadOnly]
1358
+ public int totalHealth;
1359
+
1360
+ private void OnValidate()
1361
+ {
1362
+ totalHealth = baseHealth + healthBonus;
1363
+ }
1364
+ }
1365
+ ```
1366
+
1367
+ ---
1368
+
1369
+ <a id="automation--utilities"></a>
1370
+ <a id="automation-utilities"></a>
1371
+
1372
+ ## Automation & Utilities
1373
+
1374
+ <a id="scriptableobject-singleton-creator"></a>
1375
+
1376
+ ### ScriptableObject Singleton Creator
1377
+
1378
+ **Type:** Automatic (runs on editor load)
1379
+ **Menu:** N/A (automatic) - Uses `[InitializeOnLoad]`
1380
+
1381
+ **Purpose:** Automatically creates and maintains singleton ScriptableObject assets.
1382
+
1383
+ See the base API guide for details on `ScriptableObjectSingleton<T>` usage, scenarios, and ODIN compatibility: [Singleton Utilities](SINGLETONS.md).
1384
+
1385
+ **How It Works:**
1386
+
1387
+ ```
1388
+ 1. Runs when Unity editor starts
1389
+ 2. Scans all ScriptableObjectSingleton<T> derived types
1390
+ 3. Creates missing assets in Assets/Resources/
1391
+ 4. Moves misplaced singletons to correct locations
1392
+ 5. Respects [ScriptableSingletonPath] attribute
1393
+ ```
1394
+
1395
+ **Usage Example:**
1396
+
1397
+ ```csharp
1398
+ using WallstopStudios.UnityHelpers.Utils;
1399
+ using WallstopStudios.UnityHelpers.Core.Attributes;
1400
+
1401
+ // Define singleton:
1402
+ public class GameSettings : ScriptableObjectSingleton<GameSettings>
1403
+ {
1404
+ public float masterVolume = 1.0f;
1405
+ public bool enableVSync = true;
1406
+ }
1407
+
1408
+ // Optional custom path:
1409
+ [ScriptableSingletonPath("Settings/Audio")]
1410
+ public class AudioSettings : ScriptableObjectSingleton<AudioSettings>
1411
+ {
1412
+ public float musicVolume = 0.8f;
1413
+ }
1414
+
1415
+ // Assets created automatically:
1416
+ // - Assets/Resources/GameSettings.asset
1417
+ // - Assets/Resources/Settings/Audio/AudioSettings.asset
1418
+
1419
+ // Access at runtime:
1420
+ float volume = GameSettings.Instance.masterVolume;
1421
+ ```
1422
+
1423
+ **Folder Structure:**
1424
+
1425
+ ```
1426
+ Assets/
1427
+ Resources/
1428
+ GameSettings.asset (no path attribute)
1429
+ Settings/
1430
+ Audio/ ([ScriptableSingletonPath("Settings/Audio")])
1431
+ AudioSettings.asset
1432
+ ```
1433
+
1434
+ **Best For:**
1435
+
1436
+ - Managing game settings as unique assets
1437
+ - Centralizing configuration data
1438
+ - Ensuring essential ScriptableObjects exist
1439
+ - Team workflows preventing missing asset errors
1440
+ - Automatic project setup for new developers
1441
+
1442
+ **Customization:**
1443
+
1444
+ - Set `IncludeTestAssemblies = true` to create test singletons
1445
+ - Call `EnsureSingletonAssets()` manually to refresh
1446
+
1447
+ ---
1448
+
1449
+ ### Sprite Label Processor
1450
+
1451
+ **Type:** Automatic asset processor
1452
+ **Menu:** N/A (automatic) - Uses `AssetPostprocessor`
1453
+
1454
+ **Purpose:** Automatically maintains a cache of all sprite labels in the project for fast lookup in editor tools.
1455
+
1456
+ **How It Works:**
1457
+
1458
+ 1. Monitors sprite asset imports/reimports (PNG, JPG, JPEG)
1459
+ 2. Detects changes to asset labels on sprites
1460
+ 3. Updates global sprite label cache automatically
1461
+ 4. Provides cached label list to tools like Sprite Atlas Generator
1462
+
1463
+ **What Gets Cached:**
1464
+
1465
+ - All unique asset labels across sprite assets
1466
+ - Sorted alphabetically for consistent display
1467
+ - Updated on import, not at runtime
1468
+
1469
+ **Performance Benefits:**
1470
+
1471
+ - ✅ No need to scan entire project for labels
1472
+ - ✅ Fast dropdown population in editors
1473
+ - ✅ Automatic cache invalidation on changes
1474
+ - ✅ Only processes sprite texture types
1475
+
1476
+ **Runtime Usage:**
1477
+
1478
+ ```csharp
1479
+ using WallstopStudios.UnityHelpers.Core.Helper;
1480
+
1481
+ // Get all known sprite labels
1482
+ string[] allLabels = Helpers.GetAllSpriteLabelNames();
1483
+
1484
+ // Used internally by StringInList attribute
1485
+ [StringInList(typeof(Helpers), nameof(Helpers.GetAllSpriteLabelNames))]
1486
+ public List<string> selectedLabels;
1487
+ ```
1488
+
1489
+ **Cache Updates:**
1490
+
1491
+ - On sprite import/reimport
1492
+ - When labels added/removed from sprites
1493
+ - After asset database refresh
1494
+ - Automatically during asset post-processing
1495
+
1496
+ **Best For:**
1497
+
1498
+ - Tools requiring sprite label selection
1499
+ - Dropdown menus for label filtering
1500
+ - Maintaining label consistency across project
1501
+ - Fast label-based sprite queries
1502
+
1503
+ **Technical Notes:**
1504
+
1505
+ - Skips execution in batch mode and CI environments
1506
+ - Uses efficient HashSet for uniqueness checks
1507
+ - Sorted results for consistent UI display
1508
+ - Thread-safe cache updates
1509
+
1510
+ ---
1511
+
1512
+ ### Attribute Metadata Cache Generator
1513
+
1514
+ **Type:** Automatic (runs on editor load)
1515
+ **Menu:** `Tools > WallstopStudios > Regenerate Attribute Metadata Cache`
1516
+
1517
+ **Purpose:** Pre-generate attribute system metadata at edit time to eliminate runtime reflection overhead.
1518
+
1519
+ **What Gets Cached:**
1520
+
1521
+ - All "Attribute" fields across AttributesComponent types
1522
+ - Relational metadata ([ParentComponent], [ChildComponent], [SiblingComponent])
1523
+ - Assembly-qualified type names for runtime resolution
1524
+ - Field types (single, array, List, HashSet)
1525
+ - Interface detection for polymorphic queries
1526
+
1527
+ **Performance Benefits:**
1528
+
1529
+ - ✅ Eliminates reflection overhead during attribute initialization
1530
+ - ✅ Reduces first-frame lag when attribute components awake
1531
+ - ✅ Enables fast attribute name lookups for UI
1532
+ - ✅ Optimizes relational component queries
1533
+ - ✅ Supports IL2CPP ahead-of-time compilation
1534
+
1535
+ **Runtime Usage:**
1536
+
1537
+ ```csharp
1538
+ // Cache is loaded automatically:
1539
+ AttributeMetadataCache cache = AttributeMetadataCache.Instance;
1540
+
1541
+ // Get all known attribute names:
1542
+ string[] allAttributes = cache.AllAttributeNames;
1543
+
1544
+ // Check type for attribute fields:
1545
+ TypeFieldMetadata metadata = cache.GetMetadataForType(typeof(MyAttributesComponent));
1546
+ if (metadata != null)
1547
+ {
1548
+ foreach (string fieldName in metadata.AttributeFieldNames)
1549
+ {
1550
+ Debug.Log($"Found attribute field: {fieldName}");
1551
+ }
1552
+ }
1553
+
1554
+ // Query relational component metadata:
1555
+ RelationalTypeMetadata relational = cache.GetRelationalMetadataForType(typeof(MyComponent));
1556
+ ```
1557
+
1558
+ **Cache Regenerates:**
1559
+
1560
+ - On Unity editor startup (automatic)
1561
+ - After script recompilation (automatic)
1562
+ - Manual trigger via menu item
1563
+ - After domain reload in editor
1564
+
1565
+ **Best For:**
1566
+
1567
+ - Large projects with many attribute-based components
1568
+ - Games using extensive parent/child relationships
1569
+ - Optimizing startup time for complex prefabs
1570
+ - IL2CPP builds where reflection is expensive
1571
+ - Tools needing to enumerate available attributes
1572
+
1573
+ ---
1574
+
1575
+ ### Editor Utilities
1576
+
1577
+ **Type:** Static utility class
1578
+ **Namespace:** `WallstopStudios.UnityHelpers.Editor.Utils`
1579
+
1580
+ **Purpose:** Helper methods for Unity Editor operations.
1581
+
1582
+ **Available Methods:**
1583
+
1584
+ #### `GetCurrentPathOfProjectWindow()`
1585
+
1586
+ Gets the currently selected folder in Unity's Project window.
1587
+
1588
+ ```csharp
1589
+ // In an editor window or wizard:
1590
+ string currentFolder = EditorUtilities.GetCurrentPathOfProjectWindow();
1591
+ if (!string.IsNullOrEmpty(currentFolder))
1592
+ {
1593
+ string newAssetPath = $"{currentFolder}/NewGeneratedAsset.asset";
1594
+ AssetDatabase.CreateAsset(myAsset, newAssetPath);
1595
+ }
1596
+ else
1597
+ {
1598
+ // Fallback to default location
1599
+ AssetDatabase.CreateAsset(myAsset, "Assets/NewGeneratedAsset.asset");
1600
+ }
1601
+ ```
1602
+
1603
+ **Returns:** Asset-relative path (e.g., "Assets/Scripts/Editor") or empty string.
1604
+
1605
+ **Use Cases:**
1606
+
1607
+ - Asset creation wizards defaulting to selected folder
1608
+ - Context menu extensions operating on current location
1609
+ - Batch processing tools respecting working directory
1610
+
1611
+ **Technical Notes:**
1612
+
1613
+ - Uses reflection to access internal Unity API
1614
+ - May break in future Unity versions
1615
+ - Returns empty string on failure (no exceptions)
1616
+
1617
+ **Best For:**
1618
+
1619
+ - Context-aware asset creation
1620
+ - User-friendly editor tools
1621
+ - Respecting current working directory
1622
+
1623
+ ---
1624
+
1625
+ ## Quick Reference
1626
+
1627
+ ### Tools by Category
1628
+
1629
+ **Image Processing:**
1630
+
1631
+ - Image Blur Tool - Gaussian blur effects
1632
+ - Sprite Cropper - Remove transparent padding
1633
+ - Texture Settings Applier - Batch import settings
1634
+ - Sprite Settings Applier - Sprite-specific settings
1635
+ - Sprite Pivot Adjuster - Pivot point adjustment
1636
+ - Texture Resizer - Resize textures with bilinear/point algorithms
1637
+ - Fit Texture Size - Auto-fit texture max size to source dimensions
1638
+
1639
+ **Animation:**
1640
+
1641
+ - Sprite Animation Editor - Visual animation editing with preview
1642
+ - Animation Event Editor - Visual animation event editing with sprite preview
1643
+ - Animation Creator - Bulk-create clips from naming patterns
1644
+ - Animation Copier - Duplicate and manage clips
1645
+ - Sprite Sheet Animation Creator - Convert atlases to clips
1646
+
1647
+ **Sprite Atlases:**
1648
+
1649
+ - Sprite Atlas Generator - Regex/label-based atlas creation and packing
1650
+
1651
+ **Quality & Validation:**
1652
+
1653
+ - Prefab Checker - Comprehensive prefab validation
1654
+
1655
+ **Custom Editors:**
1656
+
1657
+ - MatchColliderToSprite Editor - Manual collider matching
1658
+ - PolygonCollider2DOptimizer Editor - Collider simplification
1659
+ - EnhancedImage Editor - HDR color and shape mask support
1660
+
1661
+ **Property Drawers:**
1662
+
1663
+ - WShowIf - Conditional field visibility
1664
+ - StringInList - Dropdown selection for strings
1665
+ - IntDropdown - Dropdown selection for integers
1666
+ - DxReadOnly - Read-only inspector fields
1667
+
1668
+ **Automation:**
1669
+
1670
+ - ScriptableObject Singleton Creator - Auto-create singletons
1671
+ - Attribute Metadata Cache Generator - Performance optimization
1672
+ - Sprite Label Processor - Automatic sprite label caching
1673
+
1674
+ **Utilities:**
1675
+
1676
+ - Editor Utilities - Helper methods for editor scripting
1677
+
1678
+ ---
1679
+
1680
+ ### All Menu Items
1681
+
1682
+ **Tools > Wallstop Studios > Unity Helpers:**
1683
+
1684
+ - Animation Copier
1685
+ - Animation Creator
1686
+ - AnimationEvent Editor
1687
+ - Fit Texture Size
1688
+ - Image Blur
1689
+ - Prefab Checker
1690
+ - Sprite Animation Editor
1691
+ - Sprite Atlas Generator
1692
+ - Sprite Cropper
1693
+ - Sprite Pivot Adjuster
1694
+ - Sprite Settings Applier
1695
+ - Sprite Sheet Animation Creator
1696
+ - Texture Resizer
1697
+ - Texture Settings Applier
1698
+
1699
+ **Tools > WallstopStudios:**
1700
+
1701
+ - Regenerate Attribute Metadata Cache
1702
+
1703
+ **Assets > Create > Wallstop Studios > Unity Helpers:**
1704
+
1705
+ - Scriptable Sprite Atlas Config
1706
+
1707
+ ---
1708
+
1709
+ ### Common Workflows
1710
+
1711
+ #### Setting Up New Sprites
1712
+
1713
+ ```
1714
+ 1. Import sprites to Assets/Sprites/
1715
+ 2. Use Sprite Cropper to remove padding
1716
+ 3. Use Texture Settings Applier:
1717
+ - Filter Mode: Bilinear
1718
+ - Wrap Mode: Clamp
1719
+ - Compression: CompressedHQ
1720
+ 4. Use Sprite Settings Applier:
1721
+ - Set consistent PPU (e.g., 32 or 64)
1722
+ 5. Use Sprite Pivot Adjuster for consistent alignment
1723
+ ```
1724
+
1725
+ #### Creating and Editing Animations
1726
+
1727
+ ```
1728
+ 1. Prepare sprite frames in folder
1729
+ 2. Open Sprite Animation Editor
1730
+ 3. Click "Browse Clips (Multi)..." if clips exist, or
1731
+ 4. Use Animation Creator to generate from sprites
1732
+ 5. Edit in Sprite Animation Editor:
1733
+ - Adjust frame order via drag-drop
1734
+ - Set appropriate FPS
1735
+ 6. Save clips
1736
+ 7. (Optional) Add animation events:
1737
+ a. Open AnimationEvent Editor
1738
+ b. Drag Animator to "Animator Object" field
1739
+ c. Select animation clip
1740
+ d. Add events at specific frames
1741
+ e. Configure event methods and parameters
1742
+ f. Save changes
1743
+ ```
1744
+
1745
+ #### Creating Sprite Atlases
1746
+
1747
+ ```
1748
+ 1. Create atlas config:
1749
+ a. Open Sprite Atlas Generator
1750
+ b. Click "Create New Config in 'Assets/Data'"
1751
+ c. Name your atlas configuration
1752
+ 2. Configure source folders:
1753
+ a. Click "Add New Source Folder Entry"
1754
+ b. Select folder containing sprites
1755
+ c. Add regex patterns (e.g., "^character_.*")
1756
+ d. Or add labels for filtering
1757
+ 3. Set packing options:
1758
+ - Max texture size (2048 recommended)
1759
+ - Padding (4px default)
1760
+ - Compression settings
1761
+ 4. Preview changes:
1762
+ a. Click "Scan Folders"
1763
+ b. Review sprites to add/remove
1764
+ 5. Generate atlas:
1765
+ a. Click "Add X Sprites" if satisfied
1766
+ b. Click "Generate/Update .spriteatlas ONLY"
1767
+ c. Click "Pack All Generated Sprite Atlases"
1768
+ ```
1769
+
1770
+ #### Pre-Commit Validation
1771
+
1772
+ ```
1773
+ 1. Open Prefab Checker
1774
+ 2. Enable all critical checks:
1775
+ - Missing Scripts ✓
1776
+ - Missing Required Components ✓
1777
+ - Null Object References ✓
1778
+ 3. Add changed prefab folders
1779
+ 4. Click "Run Checks"
1780
+ 5. Fix all reported issues
1781
+ 6. Re-run to verify
1782
+ 7. Commit changes
1783
+ ```
1784
+
1785
+ #### Optimizing Textures for Build
1786
+
1787
+ ```
1788
+ 1. Use Sprite Cropper on all sprites (reduces memory)
1789
+ 2. Use Texture Settings Applier with:
1790
+ - Appropriate compression for platform
1791
+ - Crunch compression enabled
1792
+ - Proper max texture sizes
1793
+ 3. Review build report for texture memory usage
1794
+ 4. Iterate on settings as needed
1795
+ ```
1796
+
1797
+ ---
1798
+
1799
+ ### Keyboard Shortcuts & Tips
1800
+
1801
+ **Sprite Animation Editor:**
1802
+
1803
+ - `Enter` in frame order field: Apply frame reordering
1804
+ - Drag frames: Reorder via visual feedback
1805
+ - Drag clips: Reorder layer priority
1806
+
1807
+ **Prefab Checker:**
1808
+
1809
+ - Click console errors: Selects problematic prefabs
1810
+ - Toggle checks: Right-aligned checkboxes
1811
+
1812
+ **General:**
1813
+
1814
+ - All tools remember last used directories
1815
+ - Most tools support drag-and-drop folders
1816
+ - Batch operations show progress in console
1817
+
1818
+ ---
1819
+
1820
+ ### Performance Considerations
1821
+
1822
+ **Sprite Cropper:**
1823
+
1824
+ - Uses parallel processing for pixel scanning
1825
+ - Can process hundreds of sprites quickly
1826
+ - Memory usage scales with sprite size
1827
+
1828
+ **Texture Settings Applier:**
1829
+
1830
+ - Triggers Unity reimport for affected textures
1831
+ - May take time on large texture sets
1832
+ - Refresh only happens once after all changes
1833
+
1834
+ **Prefab Checker:**
1835
+
1836
+ - Caches reflection metadata for speed
1837
+ - Fast on repeated runs
1838
+ - Scales linearly with prefab count
1839
+
1840
+ **Attribute Metadata Cache:**
1841
+
1842
+ - Eliminates ~95% of runtime reflection overhead
1843
+ - Startup time improvement: 50-200ms on large projects
1844
+ - Critical for IL2CPP builds
1845
+
1846
+ ---
1847
+
1848
+ ### Troubleshooting
1849
+
1850
+ **Tool window won't open:**
1851
+
1852
+ - Check console for errors
1853
+ - Verify package is in correct location
1854
+ - Try reimporting package
1855
+
1856
+ **Settings not applying:**
1857
+
1858
+ - Ensure textures aren't in use
1859
+ - Check console for import errors
1860
+ - Verify file permissions
1861
+
1862
+ **Cache not regenerating:**
1863
+
1864
+ - Manually trigger via menu
1865
+ - Check for script compilation errors
1866
+ - Verify ScriptableObject singleton exists
1867
+
1868
+ **Prefab Checker missing issues:**
1869
+
1870
+ - Ensure all relevant checks are enabled
1871
+ - Verify folders are correct
1872
+ - Check filter settings
1873
+
1874
+ ---
1875
+
1876
+ ### Best Practices
1877
+
1878
+ **Organization:**
1879
+
1880
+ - Keep sprites in organized folder structure
1881
+ - Use consistent naming conventions
1882
+ - Separate by type (UI, Characters, Environment)
1883
+
1884
+ **Performance:**
1885
+
1886
+ - Run Sprite Cropper before creating atlases
1887
+ - Use appropriate texture compression
1888
+ - Enable crunch compression for mobile
1889
+
1890
+ **Quality:**
1891
+
1892
+ - Run Prefab Checker before commits
1893
+ - Use [ValidateAssignment] on critical fields
1894
+ - Maintain consistent texture settings per category
1895
+
1896
+ **Workflow:**
1897
+
1898
+ - Batch similar operations together
1899
+ - Use multi-file selection where available
1900
+ - Leverage automation tools (SingletonCreator, CacheGenerator)
1901
+
1902
+ ---
1903
+
1904
+ ### Additional Resources
1905
+
1906
+ **Attributes System:**
1907
+
1908
+ - See `[ValidateAssignment]` for prefab validation
1909
+ - See `[ScriptableSingletonPath]` for custom singleton paths
1910
+ - See `[ParentComponent]`, `[ChildComponent]`, `[SiblingComponent]` for relational queries
1911
+
1912
+ **Related Components:**
1913
+
1914
+ - `ScriptableObjectSingleton<T>` - Base class for settings
1915
+ - `AttributesComponent` - Base class for attribute system
1916
+ - `LayeredImage` - UI Toolkit multi-layer sprite rendering
1917
+
1918
+ ---
1919
+
1920
+ ## Version Information
1921
+
1922
+ Document Version: 2.0
1923
+ Package: com.wallstop-studios.unity-helpers
1924
+ Last Updated: 2025-10-08
1925
+
1926
+ **What's New in v2.0:**
1927
+
1928
+ - Added comprehensive Sprite Atlas Generator documentation
1929
+ - Added Animation Event Editor documentation
1930
+ - Added Texture Resizer and Fit Texture Size tools
1931
+ - Added Custom Component Editors section
1932
+ - Added Property Drawers & Attributes section
1933
+ - Added Sprite Label Processor documentation
1934
+ - Expanded all existing tool documentation
1935
+ - Added new workflow examples
1936
+ - Complete menu item reference
1937
+ - Enhanced quick reference section
1938
+
1939
+ ---
1940
+
1941
+ ## Summary
1942
+
1943
+ This package provides **20+ editor tools** across multiple categories:
1944
+
1945
+ **14 Editor Windows/Wizards:**
1946
+
1947
+ - Image Blur Tool, Sprite Cropper, Texture Settings Applier, Sprite Settings Applier
1948
+ - Sprite Pivot Adjuster, Texture Resizer, Fit Texture Size
1949
+ - Sprite Animation Editor, Animation Event Editor, Animation Creator, Animation Copier
1950
+ - Sprite Sheet Animation Creator, Sprite Atlas Generator, Prefab Checker
1951
+
1952
+ **3 Custom Component Editors:**
1953
+
1954
+ - MatchColliderToSprite, PolygonCollider2DOptimizer, EnhancedImage
1955
+
1956
+ **4 Property Drawers:**
1957
+
1958
+ - WShowIf, StringInList, IntDropdown, DxReadOnly
1959
+
1960
+ **3 Automated Systems:**
1961
+
1962
+ - ScriptableObject Singleton Creator
1963
+ - Attribute Metadata Cache Generator
1964
+ - Sprite Label Processor
1965
+
1966
+ **1 Utility Library:**
1967
+
1968
+ - Editor Utilities
1969
+
1970
+ All tools are designed to work together seamlessly and follow consistent design patterns for ease of use.
1971
+
1972
+ ---
1973
+
1974
+ For questions, issues, or feature requests, please contact the Wallstop Studios team.
1975
+
1976
+ - Integration note: The cache powers editor dropdowns and reflection shortcuts for the Effects system’s `AttributeModification.attribute` field. See [Effects System](EFFECTS_SYSTEM.md) for how attributes, effects, and tags fit together.