com.wallstop-studios.unity-helpers 2.0.0-rc81.7 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.config/dotnet-tools.json +10 -10
- package/.csharpierignore +1 -0
- package/.csharpierrc.json +3 -0
- package/.editorconfig +184 -184
- package/.gitattributes +87 -63
- package/.githooks/pre-commit +75 -0
- package/.githooks/pre-push +50 -0
- package/.github/dependabot.yml +32 -10
- package/.github/scripts/check-markdown-links.ps1 +77 -0
- package/.github/scripts/check_markdown_links.py +89 -0
- package/.github/scripts/check_markdown_url_encoding.py +74 -0
- package/.github/scripts/validate_markdown_links.py +194 -0
- package/.github/workflows/csharpier-autofix.yml +152 -0
- package/.github/workflows/format-on-demand.yml +305 -0
- package/.github/workflows/lint-doc-links.yml +30 -0
- package/.github/workflows/markdown-json.yml +45 -0
- package/.github/workflows/npm-publish.yml +75 -75
- package/.github/workflows/prettier-autofix.yml +195 -0
- package/.github/workflows/update-dotnet-tools.yml +80 -0
- package/.github/workflows/yaml-format-lint.yml +41 -0
- package/.lychee.toml +26 -0
- package/.markdownlint.json +21 -0
- package/.markdownlint.jsonc +21 -0
- package/.markdownlintignore +8 -0
- package/.pre-commit-config.yaml +47 -22
- package/.prettierignore +22 -0
- package/.prettierrc.json +20 -0
- package/.yamllint.yaml +31 -0
- package/AGENTS.md +56 -0
- package/{Third Party Notices.md.meta → AGENTS.md.meta} +7 -7
- package/CHANGELOG.md +11 -0
- package/CHANGELOG.md.meta +7 -7
- package/CONTRIBUTING.md +49 -0
- package/CONTRIBUTING.md.meta +7 -0
- package/DATA_STRUCTURES.md +324 -0
- package/DATA_STRUCTURES.md.meta +7 -0
- package/Docs/Images/attribute_resolution.svg +40 -0
- package/Docs/Images/attribute_resolution.svg.meta +7 -0
- package/Docs/Images/bitset.svg +47 -0
- package/Docs/Images/bitset.svg.meta +7 -0
- package/Docs/Images/concave_hull.svg +30 -0
- package/Docs/Images/concave_hull.svg.meta +7 -0
- package/Docs/Images/convex_hull.svg +29 -0
- package/Docs/Images/convex_hull.svg.meta +7 -0
- package/Docs/Images/cyclic_buffer.svg +37 -0
- package/Docs/Images/cyclic_buffer.svg.meta +7 -0
- package/Docs/Images/data_distribution_decision.svg +88 -0
- package/Docs/Images/data_distribution_decision.svg.meta +7 -0
- package/Docs/Images/deque.svg +64 -0
- package/Docs/Images/deque.svg.meta +7 -0
- package/Docs/Images/deque_queue.svg +107 -0
- package/Docs/Images/deque_queue.svg.meta +7 -0
- package/Docs/Images/disjoint_set.svg +47 -0
- package/Docs/Images/disjoint_set.svg.meta +7 -0
- package/Docs/Images/effects_pipeline.svg +59 -0
- package/Docs/Images/effects_pipeline.svg.meta +7 -0
- package/Docs/Images/geometry_edge_cases.svg +61 -0
- package/Docs/Images/geometry_edge_cases.svg.meta +7 -0
- package/Docs/Images/heap.svg +56 -0
- package/Docs/Images/heap.svg.meta +7 -0
- package/Docs/Images/kdtree_2d.svg +38 -0
- package/Docs/Images/kdtree_2d.svg.meta +7 -0
- package/Docs/Images/kdtree_3d.svg +83 -0
- package/Docs/Images/kdtree_3d.svg.meta +7 -0
- package/Docs/Images/octree_3d.svg +79 -0
- package/Docs/Images/octree_3d.svg.meta +7 -0
- package/Docs/Images/polyline_simplify.svg +18 -0
- package/Docs/Images/polyline_simplify.svg.meta +7 -0
- package/Docs/Images/quadtree_2d.svg +37 -0
- package/Docs/Images/quadtree_2d.svg.meta +7 -0
- package/Docs/Images/query_boundaries.svg +38 -0
- package/Docs/Images/query_boundaries.svg.meta +7 -0
- package/Docs/Images/random_generators.svg +105 -0
- package/Docs/Images/random_generators.svg.meta +7 -0
- package/Docs/Images/reflection_scan.svg +33 -0
- package/Docs/Images/reflection_scan.svg.meta +7 -0
- package/Docs/Images/relational_wiring.svg +75 -0
- package/Docs/Images/relational_wiring.svg.meta +7 -0
- package/Docs/Images/rtree_2d.svg +27 -0
- package/Docs/Images/rtree_2d.svg.meta +7 -0
- package/Docs/Images/rtree_3d.svg +79 -0
- package/Docs/Images/rtree_3d.svg.meta +7 -0
- package/Docs/Images/serialization_flow.svg +50 -0
- package/Docs/Images/serialization_flow.svg.meta +7 -0
- package/Docs/Images/singletons_lifecycle.svg +54 -0
- package/Docs/Images/singletons_lifecycle.svg.meta +7 -0
- package/Docs/Images/sparse_set.svg +54 -0
- package/Docs/Images/sparse_set.svg.meta +7 -0
- package/Docs/Images/trie.svg +55 -0
- package/Docs/Images/trie.svg.meta +7 -0
- package/Docs/Images.meta +8 -0
- package/Docs.meta +8 -0
- package/EDITOR_TOOLS_GUIDE.md +1980 -0
- package/EDITOR_TOOLS_GUIDE.md.meta +7 -0
- package/EFFECTS_SYSTEM.md +242 -0
- package/EFFECTS_SYSTEM.md.meta +7 -0
- package/EFFECTS_SYSTEM_TUTORIAL.md +467 -0
- package/EFFECTS_SYSTEM_TUTORIAL.md.meta +7 -0
- package/Editor/AnimationEventEditor.cs +1570 -874
- package/Editor/AnimationEventEditor.cs.meta +11 -11
- package/Editor/AssemblyInfo.cs +4 -0
- package/Editor/AssemblyInfo.cs.meta +3 -0
- package/Editor/AssetProcessors/SpriteLabelProcessor.cs +138 -111
- package/Editor/AssetProcessors/SpriteLabelProcessor.cs.meta +2 -2
- package/Editor/AssetProcessors.meta +2 -2
- package/Editor/Core/Helper/AnimationEventHelpers.cs +230 -0
- package/{Runtime/Core/DataStructure/ISpatialTree.cs.meta → Editor/Core/Helper/AnimationEventHelpers.cs.meta} +11 -11
- package/Editor/Core/Helper.meta +8 -0
- package/Editor/Core.meta +8 -0
- package/Editor/CustomDrawers/IntDropdownDrawer.cs +46 -46
- package/Editor/CustomDrawers/IntDropdownDrawer.cs.meta +2 -2
- package/Editor/CustomDrawers/StringInListeDrawer.cs +135 -135
- package/Editor/CustomDrawers/StringInListeDrawer.cs.meta +2 -2
- package/Editor/CustomDrawers/WShowIfPropertyDrawer.cs +105 -105
- package/Editor/CustomDrawers/WShowIfPropertyDrawer.cs.meta +2 -2
- package/Editor/CustomDrawers.meta +2 -2
- package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs +32 -32
- package/Editor/CustomEditors/MatchColliderToSpriteEditor.cs.meta +2 -2
- package/Editor/CustomEditors/PersistentDirectoryGUI.cs +808 -799
- package/Editor/CustomEditors/PersistentDirectoryGUI.cs.meta +2 -2
- package/Editor/CustomEditors/PolygonCollider2DOptimizerEditor.cs +38 -40
- package/Editor/CustomEditors/PolygonCollider2DOptimizerEditor.cs.meta +2 -2
- package/Editor/CustomEditors/SourceFolderEntryDrawer.cs +685 -413
- package/Editor/CustomEditors/SourceFolderEntryDrawer.cs.meta +2 -2
- package/Editor/CustomEditors/TexturePlatformOverrideEntryDrawer.cs +155 -0
- package/{Runtime/Core/DataStructure/KDTree.cs.meta → Editor/CustomEditors/TexturePlatformOverrideEntryDrawer.cs.meta} +11 -11
- package/Editor/CustomEditors.meta +2 -2
- package/Editor/Extensions/SerializedPropertyExtensions.cs +217 -190
- package/Editor/Extensions/SerializedPropertyExtensions.cs.meta +2 -2
- package/Editor/Extensions/UnityExtensions.cs +50 -26
- package/Editor/Extensions/UnityExtensions.cs.meta +2 -2
- package/Editor/Extensions.meta +2 -2
- package/Editor/FitTextureSizeWindow.cs +809 -332
- package/Editor/FitTextureSizeWindow.cs.meta +2 -2
- package/Editor/Persistence/MultiFileSelectorPersistenceManager.cs +62 -0
- package/{Runtime/Core/DataStructure/QuadTree.cs.meta → Editor/Persistence/MultiFileSelectorPersistenceManager.cs.meta} +11 -11
- package/Editor/Persistence/MultiFileSelectorPersistenceWindow.cs +65 -0
- package/Editor/Persistence/MultiFileSelectorPersistenceWindow.cs.meta +11 -0
- package/Editor/Persistence.meta +8 -0
- package/Editor/PersistentDirectorySettings.cs +581 -248
- package/Editor/PersistentDirectorySettings.cs.meta +2 -2
- package/Editor/PrefabChecker.cs +1396 -741
- package/Editor/PrefabChecker.cs.meta +11 -11
- package/Editor/Sprites/AnimationCopier.cs +1594 -789
- package/Editor/Sprites/AnimationCopier.cs.meta +2 -2
- package/Editor/Sprites/AnimationCreator.cs +1573 -881
- package/Editor/Sprites/AnimationCreator.cs.meta +11 -11
- package/Editor/Sprites/AnimationViewerWindow.cs +1670 -1522
- package/Editor/Sprites/AnimationViewerWindow.cs.meta +2 -2
- package/Editor/Sprites/ScriptableSpriteAtlas.cs +251 -178
- package/Editor/Sprites/ScriptableSpriteAtlas.cs.meta +2 -2
- package/Editor/Sprites/ScriptableSpriteAtlasEditor.cs +1470 -1026
- package/Editor/Sprites/ScriptableSpriteAtlasEditor.cs.meta +2 -2
- package/Editor/Sprites/SpriteCropper.cs +1013 -523
- package/Editor/Sprites/SpriteCropper.cs.meta +2 -2
- package/Editor/Sprites/SpritePivotAdjustor.cs +605 -265
- package/Editor/Sprites/SpritePivotAdjustor.cs.meta +2 -2
- package/Editor/Sprites/SpriteSettingsApplier.cs +942 -918
- package/Editor/Sprites/SpriteSettingsApplier.cs.meta +2 -2
- package/Editor/Sprites/SpriteSettingsApplierAPI.cs +441 -0
- package/Editor/Sprites/SpriteSettingsApplierAPI.cs.meta +11 -0
- package/Editor/Sprites/SpriteSettingsProfileCollection.cs +12 -0
- package/Editor/Sprites/SpriteSettingsProfileCollection.cs.meta +11 -0
- package/Editor/Sprites/SpriteSheetAnimationCreator.cs +1586 -1537
- package/Editor/Sprites/SpriteSheetAnimationCreator.cs.meta +2 -2
- package/Editor/Sprites/TexturePlatformNameHelper.cs +89 -0
- package/Editor/Sprites/TexturePlatformNameHelper.cs.meta +11 -0
- package/Editor/Sprites/TextureResizerWizard.cs +456 -175
- package/Editor/Sprites/TextureResizerWizard.cs.meta +2 -2
- package/Editor/Sprites/TextureSettingsApplierAPI.cs +359 -0
- package/Editor/Sprites/TextureSettingsApplierAPI.cs.meta +11 -0
- package/Editor/Sprites/TextureSettingsApplierWindow.cs +668 -0
- package/Editor/Sprites/TextureSettingsApplierWindow.cs.meta +11 -0
- package/Editor/Sprites.meta +2 -2
- package/Editor/Styles/AnimationViewer.uss +115 -115
- package/Editor/Styles/AnimationViewer.uss.meta +2 -2
- package/Editor/Styles/AnimationViewer.uxml +56 -56
- package/Editor/Styles/AnimationViewer.uxml.meta +2 -2
- package/Editor/Styles/SpriteSheetAnimationCreator.uss +10 -0
- package/Editor/Styles/SpriteSheetAnimationCreator.uss.meta +11 -0
- package/Editor/Styles.meta +2 -2
- package/Editor/Tags/AttributeMetadataCacheEditor.cs +46 -0
- package/Editor/Tags/AttributeMetadataCacheEditor.cs.meta +11 -0
- package/Editor/Tags/AttributeMetadataCacheGenerator.cs +258 -0
- package/Editor/Tags/AttributeMetadataCacheGenerator.cs.meta +11 -0
- package/Editor/Tags.meta +8 -0
- package/Editor/Tools/ImageBlurTool.cs +522 -409
- package/Editor/Tools/ImageBlurTool.cs.meta +2 -2
- package/Editor/Tools.meta +2 -2
- package/Editor/Utils/DxReadOnlyPropertyDrawer.cs +26 -26
- package/Editor/Utils/DxReadOnlyPropertyDrawer.cs.meta +11 -11
- package/Editor/Utils/EditorUi.cs +228 -0
- package/Editor/Utils/EditorUi.cs.meta +11 -0
- package/Editor/Utils/EditorUtilities.cs +22 -22
- package/Editor/Utils/EditorUtilities.cs.meta +11 -11
- package/Editor/Utils/ScriptableObjectSingletonCreator.cs +633 -52
- package/Editor/Utils/ScriptableObjectSingletonCreator.cs.meta +2 -2
- package/Editor/Utils.meta +8 -8
- package/Editor/Visuals/EnhancedImageEditor.cs +160 -160
- package/Editor/Visuals/EnhancedImageEditor.cs.meta +11 -11
- package/Editor/Visuals.meta +2 -2
- package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef +14 -18
- package/Editor/WallstopStudios.UnityHelpers.Editor.asmdef.meta +7 -7
- package/Editor.meta +8 -8
- package/GETTING_STARTED.md +409 -0
- package/GETTING_STARTED.md.meta +7 -0
- package/GLOSSARY.md +313 -0
- package/GLOSSARY.md.meta +7 -0
- package/HULLS.md +45 -0
- package/HULLS.md.meta +7 -0
- package/INDEX.md +429 -0
- package/INDEX.md.meta +7 -0
- package/LICENSE +21 -21
- package/LICENSE.md +7 -7
- package/LICENSE.md.meta +7 -7
- package/LICENSE.meta +7 -7
- package/MATH_AND_EXTENSIONS.md +316 -0
- package/MATH_AND_EXTENSIONS.md.meta +7 -0
- package/RANDOM_PERFORMANCE.md +140 -0
- package/RANDOM_PERFORMANCE.md.meta +7 -0
- package/README.md +1183 -188
- package/README.md.meta +7 -7
- package/REFLECTION_HELPERS.md +272 -0
- package/REFLECTION_HELPERS.md.meta +7 -0
- package/RELATIONAL_COMPONENTS.md +552 -0
- package/RELATIONAL_COMPONENTS.md.meta +7 -0
- package/Runtime/AssemblyInfo.cs +9 -0
- package/Runtime/AssemblyInfo.cs.meta +11 -0
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll +0 -0
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.dll.meta +33 -33
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml +499 -278
- package/Runtime/Binaries/Microsoft.Bcl.AsyncInterfaces.xml.meta +7 -7
- package/Runtime/Binaries/System.IO.Pipelines.dll +0 -0
- package/Runtime/Binaries/System.IO.Pipelines.dll.meta +33 -0
- package/Runtime/Binaries/System.IO.Pipelines.xml +702 -0
- package/Runtime/Binaries/System.IO.Pipelines.xml.meta +7 -0
- package/Runtime/Binaries/System.Text.Encodings.Web.dll +0 -0
- package/Runtime/Binaries/System.Text.Encodings.Web.dll.meta +33 -33
- package/Runtime/Binaries/System.Text.Encodings.Web.xml +1084 -1079
- package/Runtime/Binaries/System.Text.Encodings.Web.xml.meta +7 -7
- package/Runtime/Binaries/System.Text.Json.dll +0 -0
- package/Runtime/Binaries/System.Text.Json.dll.meta +33 -33
- package/Runtime/Binaries/System.Text.Json.xml +10217 -8116
- package/Runtime/Binaries/System.Text.Json.xml.meta +7 -7
- package/Runtime/Binaries.meta +8 -8
- package/Runtime/Core/Attributes/AnimationEventAttribute.cs +10 -138
- package/Runtime/Core/Attributes/AnimationEventAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes/BaseRelationalComponentAttribute.cs +841 -0
- package/Runtime/Core/Attributes/BaseRelationalComponentAttribute.cs.meta +11 -0
- package/Runtime/Core/Attributes/ChildComponentAttribute.cs +284 -226
- package/Runtime/Core/Attributes/ChildComponentAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs +6 -6
- package/Runtime/Core/Attributes/DxReadOnlyAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes/EnumDisplayNameAttribute.cs +15 -15
- package/Runtime/Core/Attributes/EnumDisplayNameAttribute.cs.meta +2 -2
- package/Runtime/Core/Attributes/IRelationalComponentAssigner.cs +36 -0
- package/Runtime/Core/Attributes/IRelationalComponentAssigner.cs.meta +11 -0
- package/Runtime/Core/Attributes/IntDropdownAttribute.cs +14 -14
- package/Runtime/Core/Attributes/IntDropdownAttribute.cs.meta +2 -2
- package/Runtime/Core/Attributes/KSerializableAttribute.cs +19 -19
- package/Runtime/Core/Attributes/KSerializableAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes/NotNullAttribute.cs +30 -32
- package/Runtime/Core/Attributes/NotNullAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes/ParentComponentAttribute.cs +376 -0
- package/Runtime/Core/Attributes/{ParentComponent.cs.meta → ParentComponentAttribute.cs.meta} +11 -11
- package/Runtime/Core/Attributes/RelationalComponentAssigner.cs +152 -0
- package/Runtime/Core/Attributes/RelationalComponentAssigner.cs.meta +11 -0
- package/Runtime/Core/Attributes/RelationalComponentExtensions.cs +61 -14
- package/Runtime/Core/Attributes/RelationalComponentExtensions.cs.meta +11 -11
- package/Runtime/Core/Attributes/RelationalComponentInitializer.cs +331 -0
- package/Runtime/Core/Attributes/RelationalComponentInitializer.cs.meta +11 -0
- package/Runtime/Core/Attributes/ScriptableSingletonPathAttribute.cs +15 -15
- package/Runtime/Core/Attributes/ScriptableSingletonPathAttribute.cs.meta +2 -2
- package/Runtime/Core/Attributes/SiblingComponentAttribute.cs +264 -137
- package/Runtime/Core/Attributes/SiblingComponentAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs +115 -106
- package/Runtime/Core/Attributes/ValidateAssignmentAttribute.cs.meta +11 -11
- package/Runtime/Core/Attributes/ValueHelpers.cs +10 -0
- package/Runtime/Core/Attributes/ValueHelpers.cs.meta +3 -0
- package/Runtime/Core/Attributes/WShowIfAttribute.cs +24 -24
- package/Runtime/Core/Attributes/WShowIfAttribute.cs.meta +2 -2
- package/Runtime/Core/Attributes.meta +8 -8
- package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs +192 -92
- package/Runtime/Core/DataStructure/Adapters/FastVector2Int.cs.meta +11 -11
- package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs +268 -185
- package/Runtime/Core/DataStructure/Adapters/FastVector3Int.cs.meta +11 -11
- package/Runtime/Core/DataStructure/Adapters/KGuid.cs +360 -305
- package/Runtime/Core/DataStructure/Adapters/KGuid.cs.meta +11 -11
- package/Runtime/Core/DataStructure/Adapters/KVector2.cs +146 -80
- package/Runtime/Core/DataStructure/Adapters/KVector2.cs.meta +11 -11
- package/Runtime/Core/DataStructure/Adapters.meta +8 -8
- package/Runtime/Core/DataStructure/BitSet.cs +626 -0
- package/Runtime/Core/DataStructure/BitSet.cs.meta +11 -0
- package/Runtime/Core/DataStructure/BoundingBox3D.cs +405 -0
- package/Runtime/Core/DataStructure/BoundingBox3D.cs.meta +11 -0
- package/Runtime/Core/DataStructure/Circle.cs +203 -50
- package/Runtime/Core/DataStructure/Circle.cs.meta +11 -11
- package/Runtime/Core/DataStructure/CyclicBuffer.cs +488 -266
- package/Runtime/Core/DataStructure/CyclicBuffer.cs.meta +11 -11
- package/Runtime/Core/DataStructure/Deque.cs +561 -0
- package/Runtime/Core/DataStructure/Deque.cs.meta +11 -0
- package/Runtime/Core/DataStructure/DisjointSet.cs +483 -0
- package/Runtime/Core/DataStructure/DisjointSet.cs.meta +11 -0
- package/Runtime/Core/DataStructure/Heap.cs +514 -0
- package/Runtime/Core/DataStructure/Heap.cs.meta +11 -0
- package/Runtime/Core/DataStructure/{ISpatialTree.cs → ISpatialTree2D.cs} +25 -21
- package/Runtime/Core/DataStructure/ISpatialTree2D.cs.meta +11 -0
- package/Runtime/Core/DataStructure/ISpatialTree3D.cs +33 -0
- package/Runtime/Core/DataStructure/ISpatialTree3D.cs.meta +11 -0
- package/Runtime/Core/DataStructure/ImmutableBitSet.cs +398 -0
- package/Runtime/Core/DataStructure/ImmutableBitSet.cs.meta +3 -0
- package/Runtime/Core/DataStructure/KDTree2D.cs +852 -0
- package/Runtime/Core/DataStructure/KDTree2D.cs.meta +11 -0
- package/Runtime/Core/DataStructure/KDTree3D.cs +911 -0
- package/Runtime/Core/DataStructure/KDTree3D.cs.meta +11 -0
- package/Runtime/Core/DataStructure/OctTree3D.cs +983 -0
- package/Runtime/Core/DataStructure/OctTree3D.cs.meta +11 -0
- package/Runtime/Core/DataStructure/PriorityQueue.cs +194 -0
- package/Runtime/Core/DataStructure/PriorityQueue.cs.meta +11 -0
- package/Runtime/Core/DataStructure/QuadTree2D.cs +722 -0
- package/Runtime/Core/DataStructure/QuadTree2D.cs.meta +11 -0
- package/Runtime/Core/DataStructure/RTree2D.cs +704 -0
- package/Runtime/Core/DataStructure/{RTree.cs.meta → RTree2D.cs.meta} +11 -11
- package/Runtime/Core/DataStructure/RTree3D.cs +775 -0
- package/Runtime/Core/DataStructure/RTree3D.cs.meta +11 -0
- package/Runtime/Core/DataStructure/SparseSet.cs +597 -0
- package/Runtime/Core/DataStructure/SparseSet.cs.meta +11 -0
- package/Runtime/Core/DataStructure/SpatialHash2D.cs +312 -0
- package/Runtime/Core/DataStructure/SpatialHash2D.cs.meta +3 -0
- package/Runtime/Core/DataStructure/SpatialHash3D.cs +341 -0
- package/Runtime/Core/DataStructure/SpatialHash3D.cs.meta +11 -0
- package/Runtime/Core/DataStructure/Sphere.cs +264 -0
- package/Runtime/Core/DataStructure/Sphere.cs.meta +11 -0
- package/Runtime/Core/DataStructure/StringWrapper.cs +115 -91
- package/Runtime/Core/DataStructure/StringWrapper.cs.meta +11 -11
- package/Runtime/Core/DataStructure/TimedCache.cs +88 -66
- package/Runtime/Core/DataStructure/TimedCache.cs.meta +11 -11
- package/Runtime/Core/DataStructure/Trie.cs +660 -359
- package/Runtime/Core/DataStructure/Trie.cs.meta +2 -2
- package/Runtime/Core/DataStructure.meta +8 -8
- package/Runtime/Core/Extension/AnimatorExtensions.cs +40 -25
- package/Runtime/Core/Extension/AnimatorExtensions.cs.meta +11 -11
- package/Runtime/Core/Extension/AsyncOperationExtensions.cs +404 -110
- package/Runtime/Core/Extension/AsyncOperationExtensions.cs.meta +2 -2
- package/Runtime/Core/Extension/CircleExtensions.cs +125 -25
- package/Runtime/Core/Extension/CircleExtensions.cs.meta +11 -11
- package/Runtime/Core/Extension/ColorExtensions.cs +983 -644
- package/Runtime/Core/Extension/ColorExtensions.cs.meta +11 -11
- package/Runtime/Core/Extension/DictionaryExtensions.cs +606 -299
- package/Runtime/Core/Extension/DictionaryExtensions.cs.meta +11 -11
- package/Runtime/Core/Extension/DirectionExtensions.cs +377 -213
- package/Runtime/Core/Extension/DirectionExtensions.cs.meta +11 -11
- package/Runtime/Core/Extension/EnumExtensions.cs +535 -137
- package/Runtime/Core/Extension/EnumExtensions.cs.meta +2 -2
- package/Runtime/Core/Extension/IEnumerableExtensions.cs +341 -124
- package/Runtime/Core/Extension/IEnumerableExtensions.cs.meta +11 -11
- package/Runtime/Core/Extension/IListExtensions.cs +767 -248
- package/Runtime/Core/Extension/IListExtensions.cs.meta +11 -11
- package/Runtime/Core/Extension/IReadonlyListExtensions.cs +687 -37
- package/Runtime/Core/Extension/IReadonlyListExtensions.cs.meta +2 -2
- package/Runtime/Core/Extension/ProtoEqualityExtensions.cs +292 -0
- package/Runtime/Core/Extension/ProtoEqualityExtensions.cs.meta +3 -0
- package/Runtime/Core/Extension/RandomExtensions.cs +1006 -109
- package/Runtime/Core/Extension/RandomExtensions.cs.meta +11 -11
- package/Runtime/Core/Extension/StringExtensions.cs +1635 -239
- package/Runtime/Core/Extension/StringExtensions.cs.meta +11 -11
- package/Runtime/Core/Extension/UnityExtensions.cs +4555 -1689
- package/Runtime/Core/Extension/UnityExtensions.cs.meta +11 -11
- package/Runtime/Core/Extension/WallstopStudiosLogger.cs +287 -245
- package/Runtime/Core/Extension/WallstopStudiosLogger.cs.meta +11 -11
- package/Runtime/Core/Extension.meta +8 -8
- package/Runtime/Core/Helper/ArrayConverter.cs +73 -39
- package/Runtime/Core/Helper/ArrayConverter.cs.meta +2 -2
- package/Runtime/Core/Helper/AssignUtilities.cs +33 -14
- package/Runtime/Core/Helper/AssignUtilities.cs.meta +11 -11
- package/Runtime/Core/Helper/DirectoryHelper.cs +210 -196
- package/Runtime/Core/Helper/DirectoryHelper.cs.meta +2 -2
- package/Runtime/Core/Helper/Enumerables.cs +51 -17
- package/Runtime/Core/Helper/Enumerables.cs.meta +11 -11
- package/Runtime/Core/Helper/FileHelper.cs +97 -77
- package/Runtime/Core/Helper/FileHelper.cs.meta +2 -2
- package/Runtime/Core/Helper/FormattingHelpers.cs +49 -38
- package/Runtime/Core/Helper/FormattingHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/FuncBasedComparer.cs +29 -0
- package/Runtime/Core/Helper/FuncBasedComparer.cs.meta +3 -0
- package/Runtime/Core/Helper/Geometry.cs +65 -43
- package/Runtime/Core/Helper/Geometry.cs.meta +11 -11
- package/Runtime/Core/Helper/Helpers.cs +1271 -831
- package/Runtime/Core/Helper/Helpers.cs.meta +11 -11
- package/Runtime/Core/Helper/IterationHelpers.cs +83 -32
- package/Runtime/Core/Helper/IterationHelpers.cs.meta +11 -11
- package/Runtime/Core/Helper/LifetimeHelpers.cs +20 -13
- package/Runtime/Core/Helper/LifetimeHelpers.cs.meta +11 -11
- package/Runtime/Core/Helper/LineHelper.cs +259 -194
- package/Runtime/Core/Helper/LineHelper.cs.meta +2 -2
- package/Runtime/Core/Helper/Logging/UnityLogTagFormatter.cs +549 -539
- package/Runtime/Core/Helper/Logging/UnityLogTagFormatter.cs.meta +2 -2
- package/Runtime/Core/Helper/Logging.meta +2 -2
- package/Runtime/Core/Helper/Objects.cs +477 -769
- package/Runtime/Core/Helper/Objects.cs.meta +11 -11
- package/Runtime/Core/Helper/Partials/LogHelpers.cs +13 -13
- package/Runtime/Core/Helper/Partials/LogHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/MathHelpers.cs +45 -30
- package/Runtime/Core/Helper/Partials/MathHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +509 -400
- package/Runtime/Core/Helper/Partials/ObjectHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials/TransformHelpers.cs +393 -377
- package/Runtime/Core/Helper/Partials/TransformHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/Partials.meta +2 -2
- package/Runtime/Core/Helper/PathHelper.cs +42 -15
- package/Runtime/Core/Helper/PathHelper.cs.meta +2 -2
- package/Runtime/Core/Helper/ReflectionHelpers.cs +5298 -1963
- package/Runtime/Core/Helper/ReflectionHelpers.cs.meta +2 -2
- package/Runtime/Core/Helper/ReverseComparer.cs +33 -0
- package/Runtime/Core/Helper/ReverseComparer.cs.meta +3 -0
- package/Runtime/Core/Helper/SceneHelper.cs +251 -224
- package/Runtime/Core/Helper/SceneHelper.cs.meta +2 -2
- package/Runtime/Core/Helper/SpriteHelpers.cs +52 -41
- package/Runtime/Core/Helper/SpriteHelpers.cs.meta +11 -11
- package/Runtime/Core/Helper/StringInList.cs +61 -35
- package/Runtime/Core/Helper/StringInList.cs.meta +11 -11
- package/Runtime/Core/Helper/TestAssemblyHelper.cs +134 -0
- package/Runtime/Core/Helper/TestAssemblyHelper.cs.meta +11 -0
- package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs +144 -82
- package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs.meta +2 -2
- package/Runtime/Core/Helper/WallMath.cs +672 -166
- package/Runtime/Core/Helper/WallMath.cs.meta +11 -11
- package/Runtime/Core/Helper.meta +8 -8
- package/Runtime/Core/Math/Line2D.cs +263 -0
- package/Runtime/Core/Math/Line2D.cs.meta +11 -0
- package/Runtime/Core/Math/Line3D.cs +452 -0
- package/Runtime/Core/Math/Line3D.cs.meta +11 -0
- package/Runtime/Core/Math/Parabola.cs +241 -47
- package/Runtime/Core/Math/Parabola.cs.meta +11 -11
- package/Runtime/Core/Math/PointPolygonCheck.cs +175 -36
- package/Runtime/Core/Math/PointPolygonCheck.cs.meta +11 -11
- package/Runtime/Core/Math/Range.cs +157 -92
- package/Runtime/Core/Math/Range.cs.meta +11 -11
- package/Runtime/Core/Math.meta +8 -8
- package/Runtime/Core/Model/Direction.cs +25 -43
- package/Runtime/Core/Model/Direction.cs.meta +11 -11
- package/Runtime/Core/Model.meta +8 -8
- package/Runtime/Core/OneOf/FastOneOf.cs +252 -152
- package/Runtime/Core/OneOf/FastOneOf.cs.meta +11 -11
- package/Runtime/Core/OneOf/FastOneOf2.cs +198 -0
- package/Runtime/Core/OneOf/FastOneOf2.cs.meta +11 -0
- package/Runtime/Core/OneOf/FastOneOf4.cs +324 -0
- package/Runtime/Core/OneOf/FastOneOf4.cs.meta +11 -0
- package/Runtime/Core/OneOf/None.cs +30 -4
- package/Runtime/Core/OneOf/None.cs.meta +11 -11
- package/Runtime/Core/OneOf.meta +8 -8
- package/Runtime/Core/Random/AbstractRandom.cs +1318 -655
- package/Runtime/Core/Random/AbstractRandom.cs.meta +11 -11
- package/Runtime/Core/Random/DotNetRandom.cs +118 -54
- package/Runtime/Core/Random/DotNetRandom.cs.meta +2 -2
- package/Runtime/Core/Random/IRandom.cs +203 -161
- package/Runtime/Core/Random/IRandom.cs.meta +11 -11
- package/Runtime/Core/Random/IllusionFlow.cs +171 -107
- package/Runtime/Core/Random/IllusionFlow.cs.meta +2 -2
- package/Runtime/Core/Random/LinearCongruentialGenerator.cs +90 -49
- package/Runtime/Core/Random/LinearCongruentialGenerator.cs.meta +2 -2
- package/Runtime/Core/Random/NativePcgRandom.cs +139 -97
- package/Runtime/Core/Random/NativePcgRandom.cs.meta +11 -11
- package/Runtime/Core/Random/PRNG.cs +21 -7
- package/Runtime/Core/Random/PRNG.cs.meta +2 -2
- package/Runtime/Core/Random/PcgRandom.cs +243 -149
- package/Runtime/Core/Random/PcgRandom.cs.meta +11 -11
- package/Runtime/Core/Random/PerlinNoise.cs +369 -369
- package/Runtime/Core/Random/PerlinNoise.cs.meta +2 -2
- package/Runtime/Core/Random/RandomComparer.cs +34 -0
- package/Runtime/Core/Random/RandomComparer.cs.meta +3 -0
- package/Runtime/Core/Random/RandomState.cs +206 -131
- package/Runtime/Core/Random/RandomState.cs.meta +11 -11
- package/Runtime/Core/Random/RandomUtilities.cs +55 -26
- package/Runtime/Core/Random/RandomUtilities.cs.meta +11 -11
- package/Runtime/Core/Random/RomuDuo.cs +171 -116
- package/Runtime/Core/Random/RomuDuo.cs.meta +2 -2
- package/Runtime/Core/Random/SplitMix64.cs +134 -94
- package/Runtime/Core/Random/SplitMix64.cs.meta +2 -2
- package/Runtime/Core/Random/SquirrelRandom.cs +127 -84
- package/Runtime/Core/Random/SquirrelRandom.cs.meta +11 -11
- package/Runtime/Core/Random/SystemRandom.cs +203 -162
- package/Runtime/Core/Random/SystemRandom.cs.meta +11 -11
- package/Runtime/Core/Random/ThreadLocalRandom.cs +25 -12
- package/Runtime/Core/Random/ThreadLocalRandom.cs.meta +11 -11
- package/Runtime/Core/Random/UnityRandom.cs +109 -57
- package/Runtime/Core/Random/UnityRandom.cs.meta +11 -11
- package/Runtime/Core/Random/WyRandom.cs +158 -121
- package/Runtime/Core/Random/WyRandom.cs.meta +2 -2
- package/Runtime/Core/Random/XorShiftRandom.cs +106 -52
- package/Runtime/Core/Random/XorShiftRandom.cs.meta +11 -11
- package/Runtime/Core/Random/XoroShiroRandom.cs +184 -119
- package/Runtime/Core/Random/XoroShiroRandom.cs.meta +2 -2
- package/Runtime/Core/Random.meta +8 -8
- package/Runtime/Core/Serialization/JsonConverters/AnimationCurveConverter.cs +248 -0
- package/Runtime/Core/Serialization/JsonConverters/AnimationCurveConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/BitSetConverter.cs +119 -0
- package/Runtime/Core/Serialization/JsonConverters/BitSetConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/BoundingSphereConverter.cs +74 -0
- package/Runtime/Core/Serialization/JsonConverters/BoundingSphereConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/BoundsConverter.cs +132 -0
- package/Runtime/Core/Serialization/JsonConverters/BoundsConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/BoundsIntConverter.cs +135 -0
- package/Runtime/Core/Serialization/JsonConverters/BoundsIntConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/Color32Converter.cs +98 -0
- package/Runtime/Core/Serialization/JsonConverters/Color32Converter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/ColorBlockConverter.cs +123 -0
- package/Runtime/Core/Serialization/JsonConverters/ColorBlockConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs +88 -88
- package/Runtime/Core/Serialization/JsonConverters/ColorConverter.cs.meta +2 -2
- package/Runtime/Core/Serialization/JsonConverters/CyclicBufferConverterFactory.cs +112 -0
- package/Runtime/Core/Serialization/JsonConverters/CyclicBufferConverterFactory.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/DequeConverterFactory.cs +62 -0
- package/Runtime/Core/Serialization/JsonConverters/DequeConverterFactory.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/FastVector2IntConverter.cs +72 -0
- package/Runtime/Core/Serialization/JsonConverters/FastVector2IntConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/FastVector3IntConverter.cs +80 -0
- package/Runtime/Core/Serialization/JsonConverters/FastVector3IntConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs +44 -36
- package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs.meta +2 -2
- package/Runtime/Core/Serialization/JsonConverters/GradientConverter.cs +245 -0
- package/Runtime/Core/Serialization/JsonConverters/GradientConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/Hash128Converter.cs +92 -0
- package/Runtime/Core/Serialization/JsonConverters/Hash128Converter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/ImmutableBitSetConverter.cs +119 -0
- package/Runtime/Core/Serialization/JsonConverters/ImmutableBitSetConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/KVector2Converter.cs +72 -0
- package/Runtime/Core/Serialization/JsonConverters/KVector2Converter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/LayerMaskConverter.cs +95 -0
- package/Runtime/Core/Serialization/JsonConverters/LayerMaskConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs +237 -218
- package/Runtime/Core/Serialization/JsonConverters/Matrix4x4Converter.cs.meta +2 -2
- package/Runtime/Core/Serialization/JsonConverters/MinMaxCurveConverter.cs +142 -0
- package/Runtime/Core/Serialization/JsonConverters/MinMaxCurveConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/MinMaxGradientConverter.cs +135 -0
- package/Runtime/Core/Serialization/JsonConverters/MinMaxGradientConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/PlaneConverter.cs +79 -0
- package/Runtime/Core/Serialization/JsonConverters/PlaneConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/PoseConverter.cs +76 -0
- package/Runtime/Core/Serialization/JsonConverters/PoseConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/QuaternionConverter.cs +88 -0
- package/Runtime/Core/Serialization/JsonConverters/QuaternionConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/RangeConverterFactory.cs +106 -0
- package/Runtime/Core/Serialization/JsonConverters/RangeConverterFactory.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/RangeIntConverter.cs +71 -0
- package/Runtime/Core/Serialization/JsonConverters/RangeIntConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/Ray2DConverter.cs +80 -0
- package/Runtime/Core/Serialization/JsonConverters/Ray2DConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/RayConverter.cs +76 -0
- package/Runtime/Core/Serialization/JsonConverters/RayConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/RaycastHitConverter.cs +115 -0
- package/Runtime/Core/Serialization/JsonConverters/RaycastHitConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/RectConverter.cs +84 -0
- package/Runtime/Core/Serialization/JsonConverters/RectConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/RectIntConverter.cs +88 -0
- package/Runtime/Core/Serialization/JsonConverters/RectIntConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/RectOffsetConverter.cs +87 -0
- package/Runtime/Core/Serialization/JsonConverters/RectOffsetConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/RenderTextureDescriptorConverter.cs +264 -0
- package/Runtime/Core/Serialization/JsonConverters/RenderTextureDescriptorConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/ResolutionConverter.cs +158 -0
- package/Runtime/Core/Serialization/JsonConverters/ResolutionConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/SceneConverter.cs +103 -0
- package/Runtime/Core/Serialization/JsonConverters/SceneConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/SphericalHarmonicsL2Converter.cs +121 -0
- package/Runtime/Core/Serialization/JsonConverters/SphericalHarmonicsL2Converter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/TouchConverter.cs +54 -0
- package/Runtime/Core/Serialization/JsonConverters/TouchConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs +30 -28
- package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs.meta +2 -2
- package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs +72 -74
- package/Runtime/Core/Serialization/JsonConverters/Vector2Converter.cs.meta +11 -11
- package/Runtime/Core/Serialization/JsonConverters/Vector2IntConverter.cs +72 -0
- package/Runtime/Core/Serialization/JsonConverters/Vector2IntConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs +80 -81
- package/Runtime/Core/Serialization/JsonConverters/Vector3Converter.cs.meta +11 -11
- package/Runtime/Core/Serialization/JsonConverters/Vector3IntConverter.cs +80 -0
- package/Runtime/Core/Serialization/JsonConverters/Vector3IntConverter.cs.meta +11 -0
- package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs +88 -88
- package/Runtime/Core/Serialization/JsonConverters/Vector4Converter.cs.meta +2 -2
- package/Runtime/Core/Serialization/JsonConverters.meta +8 -8
- package/Runtime/Core/Serialization/ProtobufUnitySurrogates.cs +383 -0
- package/Runtime/Core/Serialization/ProtobufUnitySurrogates.cs.meta +11 -0
- package/Runtime/Core/Serialization/Serializer.cs +2121 -195
- package/Runtime/Core/Serialization/Serializer.cs.meta +11 -11
- package/Runtime/Core/Serialization.meta +8 -8
- package/Runtime/Core/Threading/SingleThreadedThreadPool.cs +228 -228
- package/Runtime/Core/Threading/SingleThreadedThreadPool.cs.meta +11 -11
- package/Runtime/Core/Threading.meta +8 -8
- package/Runtime/Core.meta +8 -8
- package/Runtime/Integrations/VContainer/AssemblyInfo.cs +9 -0
- package/Runtime/Integrations/VContainer/AssemblyInfo.cs.meta +3 -0
- package/Runtime/Integrations/VContainer/ObjectResolverRelationalExtensions.cs +281 -0
- package/Runtime/Integrations/VContainer/ObjectResolverRelationalExtensions.cs.meta +11 -0
- package/Runtime/Integrations/VContainer/RelationalComponentEntryPoint.cs +189 -0
- package/Runtime/Integrations/VContainer/RelationalComponentEntryPoint.cs.meta +11 -0
- package/Runtime/Integrations/VContainer/RelationalComponentsBuilderExtensions.cs +90 -0
- package/Runtime/Integrations/VContainer/RelationalComponentsBuilderExtensions.cs.meta +11 -0
- package/Runtime/Integrations/VContainer/RelationalObjectPools.cs +114 -0
- package/Runtime/Integrations/VContainer/RelationalObjectPools.cs.meta +11 -0
- package/Runtime/Integrations/VContainer/RelationalSceneAssignmentOptions.cs +95 -0
- package/Runtime/Integrations/VContainer/RelationalSceneAssignmentOptions.cs.meta +11 -0
- package/Runtime/Integrations/VContainer/RelationalSceneLoadListener.cs +241 -0
- package/Runtime/Integrations/VContainer/RelationalSceneLoadListener.cs.meta +11 -0
- package/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Integration.VContainer.asmdef +30 -0
- package/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Integration.VContainer.asmdef.meta +7 -0
- package/Runtime/Integrations/VContainer.meta +8 -0
- package/Runtime/Integrations/Zenject/AssemblyInfo.cs +9 -0
- package/Runtime/Integrations/Zenject/AssemblyInfo.cs.meta +3 -0
- package/Runtime/Integrations/Zenject/DiContainerRelationalExtensions.cs +247 -0
- package/Runtime/Integrations/Zenject/DiContainerRelationalExtensions.cs.meta +11 -0
- package/Runtime/Integrations/Zenject/RelationalComponentSceneInitializer.cs +182 -0
- package/Runtime/Integrations/Zenject/RelationalComponentSceneInitializer.cs.meta +11 -0
- package/Runtime/Integrations/Zenject/RelationalComponentsInstaller.cs +94 -0
- package/Runtime/Integrations/Zenject/RelationalComponentsInstaller.cs.meta +11 -0
- package/Runtime/Integrations/Zenject/RelationalMemoryPools.cs +44 -0
- package/Runtime/Integrations/Zenject/RelationalMemoryPools.cs.meta +11 -0
- package/Runtime/Integrations/Zenject/RelationalSceneAssignmentOptions.cs +93 -0
- package/Runtime/Integrations/Zenject/RelationalSceneAssignmentOptions.cs.meta +11 -0
- package/Runtime/Integrations/Zenject/RelationalSceneLoadListener.cs +243 -0
- package/Runtime/Integrations/Zenject/RelationalSceneLoadListener.cs.meta +11 -0
- package/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Integration.Zenject.asmdef +30 -0
- package/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Integration.Zenject.asmdef.meta +7 -0
- package/Runtime/Integrations/Zenject.meta +8 -0
- package/Runtime/Integrations.meta +8 -0
- package/Runtime/Protobuf-Net/System.Collections.Immutable.dll.meta +33 -33
- package/Runtime/Protobuf-Net/System.Runtime.CompilerServices.Unsafe.dll.meta +33 -33
- package/Runtime/Protobuf-Net/protobuf-net.Core.dll.meta +33 -33
- package/Runtime/Protobuf-Net/protobuf-net.dll.meta +33 -33
- package/Runtime/Protobuf-Net.meta +8 -8
- package/Runtime/Tags/AlwaysIncludeInAttributeMetadataCacheAttribute.cs +11 -0
- package/Runtime/Tags/AlwaysIncludeInAttributeMetadataCacheAttribute.cs.meta +11 -0
- package/Runtime/Tags/Attribute.cs +399 -205
- package/Runtime/Tags/Attribute.cs.meta +2 -2
- package/Runtime/Tags/AttributeEffect.cs +372 -281
- package/Runtime/Tags/AttributeEffect.cs.meta +2 -2
- package/Runtime/Tags/AttributeMetadataCache.cs +500 -0
- package/Runtime/Tags/AttributeMetadataCache.cs.meta +11 -0
- package/Runtime/Tags/AttributeMetadataFilters.cs +108 -0
- package/Runtime/Tags/AttributeMetadataFilters.cs.meta +11 -0
- package/Runtime/Tags/AttributeModification.cs +132 -48
- package/Runtime/Tags/AttributeModification.cs.meta +2 -2
- package/Runtime/Tags/AttributeUtilities.cs +376 -209
- package/Runtime/Tags/AttributeUtilities.cs.meta +2 -2
- package/Runtime/Tags/AttributesComponent.cs +237 -163
- package/Runtime/Tags/AttributesComponent.cs.meta +2 -2
- package/Runtime/Tags/CollisionSenses.cs +117 -91
- package/Runtime/Tags/CollisionSenses.cs.meta +2 -2
- package/Runtime/Tags/CosmeticEffectComponent.cs +112 -50
- package/Runtime/Tags/CosmeticEffectComponent.cs.meta +2 -2
- package/Runtime/Tags/CosmeticEffectData.cs +109 -63
- package/Runtime/Tags/CosmeticEffectData.cs.meta +2 -2
- package/Runtime/Tags/EffectHandle.cs +150 -65
- package/Runtime/Tags/EffectHandle.cs.meta +2 -2
- package/Runtime/Tags/EffectHandler.cs +470 -393
- package/Runtime/Tags/EffectHandler.cs.meta +2 -2
- package/Runtime/Tags/ModificationAction.cs +60 -9
- package/Runtime/Tags/ModificationAction.cs.meta +2 -2
- package/Runtime/Tags/ModifierDurationType.cs +71 -13
- package/Runtime/Tags/ModifierDurationType.cs.meta +2 -2
- package/Runtime/Tags/TagHandler.cs +373 -158
- package/Runtime/Tags/TagHandler.cs.meta +2 -2
- package/Runtime/Tags.meta +2 -2
- package/Runtime/Utils/AnimationEventEqualityComparer.cs +198 -161
- package/Runtime/Utils/AnimationEventEqualityComparer.cs.meta +11 -11
- package/Runtime/Utils/AnimatorEnumStateMachine.cs +110 -88
- package/Runtime/Utils/AnimatorEnumStateMachine.cs.meta +11 -11
- package/Runtime/Utils/Ascii85.cs +132 -115
- package/Runtime/Utils/Ascii85.cs.meta +2 -2
- package/Runtime/Utils/Buffers.cs +1151 -550
- package/Runtime/Utils/Buffers.cs.meta +11 -11
- package/Runtime/Utils/CenterPointOffset.cs +35 -30
- package/Runtime/Utils/CenterPointOffset.cs.meta +2 -2
- package/Runtime/Utils/ChildSpawner.cs +250 -157
- package/Runtime/Utils/ChildSpawner.cs.meta +2 -2
- package/Runtime/Utils/CircleLineRenderer.cs +142 -142
- package/Runtime/Utils/CircleLineRenderer.cs.meta +11 -11
- package/Runtime/Utils/CollisionProxy.cs +48 -48
- package/Runtime/Utils/CollisionProxy.cs.meta +2 -2
- package/Runtime/Utils/CoroutineHandler.cs +4 -4
- package/Runtime/Utils/CoroutineHandler.cs.meta +2 -2
- package/Runtime/Utils/DeferredDisposalResult.cs +20 -23
- package/Runtime/Utils/DeferredDisposalResult.cs.meta +2 -2
- package/Runtime/Utils/LZMA.cs +276 -53
- package/Runtime/Utils/LZMA.cs.meta +2 -2
- package/Runtime/Utils/MatchColliderToSprite.cs +104 -104
- package/Runtime/Utils/MatchColliderToSprite.cs.meta +2 -2
- package/Runtime/Utils/MatchTransform.cs +99 -82
- package/Runtime/Utils/MatchTransform.cs.meta +2 -2
- package/Runtime/Utils/Oscillator.cs +27 -27
- package/Runtime/Utils/Oscillator.cs.meta +11 -11
- package/Runtime/Utils/PolygonCollider2DOptimizer.cs +104 -83
- package/Runtime/Utils/PolygonCollider2DOptimizer.cs.meta +2 -2
- package/Runtime/Utils/RuntimeSingleton.cs +139 -89
- package/Runtime/Utils/RuntimeSingleton.cs.meta +11 -11
- package/Runtime/Utils/ScriptableObjectSingleton.cs +225 -85
- package/Runtime/Utils/ScriptableObjectSingleton.cs.meta +2 -2
- package/Runtime/Utils/SerializedStringComparer.cs +107 -107
- package/Runtime/Utils/SerializedStringComparer.cs.meta +2 -2
- package/Runtime/Utils/SetTextureImportData.cs +71 -69
- package/Runtime/Utils/SetTextureImportData.cs.meta +11 -11
- package/Runtime/Utils/SevenZip/Common/CRC.cs +70 -70
- package/Runtime/Utils/SevenZip/Common/CRC.cs.meta +11 -11
- package/Runtime/Utils/SevenZip/Common/InBuffer.cs +84 -84
- package/Runtime/Utils/SevenZip/Common/InBuffer.cs.meta +11 -11
- package/Runtime/Utils/SevenZip/Common/OutBuffer.cs +70 -70
- package/Runtime/Utils/SevenZip/Common/OutBuffer.cs.meta +11 -11
- package/Runtime/Utils/SevenZip/Common.meta +2 -2
- package/Runtime/Utils/SevenZip/Compress/LZ/IMatchFinder.cs +28 -28
- package/Runtime/Utils/SevenZip/Compress/LZ/IMatchFinder.cs.meta +11 -11
- package/Runtime/Utils/SevenZip/Compress/LZ/LzBinTree.cs +454 -454
- package/Runtime/Utils/SevenZip/Compress/LZ/LzBinTree.cs.meta +11 -11
- package/Runtime/Utils/SevenZip/Compress/LZ/LzInWindow.cs +179 -179
- package/Runtime/Utils/SevenZip/Compress/LZ/LzInWindow.cs.meta +11 -11
- package/Runtime/Utils/SevenZip/Compress/LZ/LzOutWindow.cs +137 -137
- package/Runtime/Utils/SevenZip/Compress/LZ/LzOutWindow.cs.meta +11 -11
- package/Runtime/Utils/SevenZip/Compress/LZ.meta +8 -8
- package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaBase.cs +110 -110
- package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaBase.cs.meta +11 -11
- package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaDecoder.cs +525 -527
- package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaDecoder.cs.meta +11 -11
- package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaEncoder.cs +1891 -1904
- package/Runtime/Utils/SevenZip/Compress/LZMA/LzmaEncoder.cs.meta +11 -11
- package/Runtime/Utils/SevenZip/Compress/LZMA.meta +8 -8
- package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoder.cs +242 -242
- package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoder.cs.meta +11 -11
- package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBit.cs +146 -149
- package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBit.cs.meta +11 -11
- package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs +177 -177
- package/Runtime/Utils/SevenZip/Compress/RangeCoder/RangeCoderBitTree.cs.meta +11 -11
- package/Runtime/Utils/SevenZip/Compress/RangeCoder.meta +8 -8
- package/Runtime/Utils/SevenZip/Compress.meta +8 -8
- package/Runtime/Utils/SevenZip/ICoder.cs +177 -177
- package/Runtime/Utils/SevenZip/ICoder.cs.meta +11 -11
- package/Runtime/Utils/SevenZip.meta +2 -2
- package/Runtime/Utils/SpriteRendererMetadata.cs +346 -370
- package/Runtime/Utils/SpriteRendererMetadata.cs.meta +2 -2
- package/Runtime/Utils/SpriteRendererSyncer.cs +100 -100
- package/Runtime/Utils/SpriteRendererSyncer.cs.meta +2 -2
- package/Runtime/Utils/StartTracker.cs +15 -15
- package/Runtime/Utils/StartTracker.cs.meta +2 -2
- package/Runtime/Utils/TextureScale.cs +364 -179
- package/Runtime/Utils/TextureScale.cs.meta +2 -2
- package/Runtime/Utils/TypeNameSorter.cs +17 -17
- package/Runtime/Utils/TypeNameSorter.cs.meta +2 -2
- package/Runtime/Utils/UnityObjectNameComparer.cs +89 -89
- package/Runtime/Utils/UnityObjectNameComparer.cs.meta +2 -2
- package/Runtime/Utils.meta +8 -8
- package/Runtime/Visuals/AnimatedSpriteLayer.cs +217 -130
- package/Runtime/Visuals/AnimatedSpriteLayer.cs.meta +2 -2
- package/Runtime/Visuals/UGUI/EnhancedImage.cs +224 -85
- package/Runtime/Visuals/UGUI/EnhancedImage.cs.meta +2 -2
- package/Runtime/Visuals/UGUI.meta +2 -2
- package/Runtime/Visuals/UIToolkit/LayeredImage.cs +784 -484
- package/Runtime/Visuals/UIToolkit/LayeredImage.cs.meta +2 -2
- package/Runtime/Visuals/UIToolkit/MultiFileSelectorElement.cs +945 -322
- package/Runtime/Visuals/UIToolkit/MultiFileSelectorElement.cs.meta +2 -2
- package/Runtime/Visuals/UIToolkit.meta +2 -2
- package/Runtime/Visuals.meta +2 -2
- package/Runtime/WallstopStudios.UnityHelpers.asmdef +22 -14
- package/Runtime/WallstopStudios.UnityHelpers.asmdef.meta +7 -7
- package/Runtime.meta +8 -8
- package/SERIALIZATION.md +663 -0
- package/SERIALIZATION.md.meta +7 -0
- package/SINGLETONS.md +427 -0
- package/SINGLETONS.md.meta +7 -0
- package/SPATIAL_TREES_2D_GUIDE.md +261 -0
- package/SPATIAL_TREES_2D_GUIDE.md.meta +7 -0
- package/SPATIAL_TREES_3D_GUIDE.md +214 -0
- package/SPATIAL_TREES_3D_GUIDE.md.meta +7 -0
- package/SPATIAL_TREE_2D_PERFORMANCE.md +241 -0
- package/SPATIAL_TREE_2D_PERFORMANCE.md.meta +7 -0
- package/SPATIAL_TREE_3D_PERFORMANCE.md +243 -0
- package/SPATIAL_TREE_3D_PERFORMANCE.md.meta +7 -0
- package/SPATIAL_TREE_SEMANTICS.md +106 -0
- package/SPATIAL_TREE_SEMANTICS.md.meta +7 -0
- package/Samples~/DI - VContainer/Prefabs/RelationalConsumer.prefab +77 -0
- package/Samples~/DI - VContainer/Prefabs/RelationalConsumer.prefab.meta +8 -0
- package/Samples~/DI - VContainer/Prefabs/Spawner.prefab +47 -0
- package/Samples~/DI - VContainer/Prefabs/Spawner.prefab.meta +8 -0
- package/Samples~/DI - VContainer/Prefabs.meta +9 -0
- package/Samples~/DI - VContainer/README.md +515 -0
- package/Samples~/DI - VContainer/README.md.meta +8 -0
- package/Samples~/DI - VContainer/Scenes/VContainer_Sample.unity +120 -0
- package/Samples~/DI - VContainer/Scenes/VContainer_Sample.unity.meta +8 -0
- package/Samples~/DI - VContainer/Scenes.meta +9 -0
- package/Samples~/DI - VContainer/Scripts/GameLifetimeScope.cs +42 -0
- package/Samples~/DI - VContainer/Scripts/GameLifetimeScope.cs.meta +12 -0
- package/Samples~/DI - VContainer/Scripts/RelationalConsumer.cs +24 -0
- package/Samples~/DI - VContainer/Scripts/RelationalConsumer.cs.meta +12 -0
- package/Samples~/DI - VContainer/Scripts/Samples.UnityHelpers.DI.VContainer.asmdef +37 -0
- package/Samples~/DI - VContainer/Scripts/Samples.UnityHelpers.DI.VContainer.asmdef.meta +8 -0
- package/Samples~/DI - VContainer/Scripts/Spawner.cs +130 -0
- package/Samples~/DI - VContainer/Scripts/Spawner.cs.meta +12 -0
- package/Samples~/DI - VContainer/Scripts.meta +9 -0
- package/Samples~/DI - VContainer.meta +9 -0
- package/Samples~/DI - Zenject/Prefabs/RelationalConsumer.prefab +77 -0
- package/Samples~/DI - Zenject/Prefabs/RelationalConsumer.prefab.meta +8 -0
- package/Samples~/DI - Zenject/Prefabs/SpawnerZenject.prefab +47 -0
- package/Samples~/DI - Zenject/Prefabs/SpawnerZenject.prefab.meta +8 -0
- package/Samples~/DI - Zenject/Prefabs.meta +9 -0
- package/Samples~/DI - Zenject/README.md +553 -0
- package/Samples~/DI - Zenject/README.md.meta +7 -0
- package/Samples~/DI - Zenject/Scenes/Zenject_Sample.unity +164 -0
- package/Samples~/DI - Zenject/Scenes/Zenject_Sample.unity.meta +8 -0
- package/Samples~/DI - Zenject/Scenes.meta +9 -0
- package/Samples~/DI - Zenject/Scripts/RelationalConsumer.cs +22 -0
- package/Samples~/DI - Zenject/Scripts/RelationalConsumer.cs.meta +12 -0
- package/Samples~/DI - Zenject/Scripts/RelationalConsumerPool.cs +37 -0
- package/Samples~/DI - Zenject/Scripts/RelationalConsumerPool.cs.meta +12 -0
- package/Samples~/DI - Zenject/Scripts/Samples.UnityHelpers.DI.Zenject.asmdef +36 -0
- package/Samples~/DI - Zenject/Scripts/Samples.UnityHelpers.DI.Zenject.asmdef.meta +8 -0
- package/Samples~/DI - Zenject/Scripts/SceneContextPlaceholder.cs +47 -0
- package/Samples~/DI - Zenject/Scripts/SceneContextPlaceholder.cs.meta +12 -0
- package/Samples~/DI - Zenject/Scripts/SpawnerZenject.cs +91 -0
- package/Samples~/DI - Zenject/Scripts/SpawnerZenject.cs.meta +12 -0
- package/Samples~/DI - Zenject/Scripts.meta +9 -0
- package/Samples~/DI - Zenject.meta +9 -0
- package/Samples~/Random - PRNG/README.md +13 -0
- package/Samples~/Random - PRNG/README.md.meta +8 -0
- package/Samples~/Random - PRNG/Scripts/RandomPrngDemo.cs +28 -0
- package/Samples~/Random - PRNG/Scripts/RandomPrngDemo.cs.meta +12 -0
- package/Samples~/Random - PRNG/Scripts/Samples.UnityHelpers.Random.Prng.asmdef +17 -0
- package/Samples~/Random - PRNG/Scripts/Samples.UnityHelpers.Random.Prng.asmdef.meta +8 -0
- package/Samples~/Random - PRNG/Scripts.meta +9 -0
- package/Samples~/Random - PRNG.meta +9 -0
- package/Samples~/Relational Components - Basic/README.md +21 -0
- package/Samples~/Relational Components - Basic/README.md.meta +8 -0
- package/Samples~/Relational Components - Basic/Scripts/RelationalBasicConsumer.cs +37 -0
- package/Samples~/Relational Components - Basic/Scripts/RelationalBasicConsumer.cs.meta +12 -0
- package/Samples~/Relational Components - Basic/Scripts/Samples.UnityHelpers.Relational.Basic.asmdef +17 -0
- package/Samples~/Relational Components - Basic/Scripts/Samples.UnityHelpers.Relational.Basic.asmdef.meta +8 -0
- package/Samples~/Relational Components - Basic/Scripts.meta +9 -0
- package/Samples~/Relational Components - Basic.meta +9 -0
- package/Samples~/Serialization - JSON/README.md +14 -0
- package/Samples~/Serialization - JSON/README.md.meta +8 -0
- package/Samples~/Serialization - JSON/Scripts/JsonSerializationDemo.cs +50 -0
- package/Samples~/Serialization - JSON/Scripts/JsonSerializationDemo.cs.meta +12 -0
- package/Samples~/Serialization - JSON/Scripts/Samples.UnityHelpers.Serialization.Json.asmdef +17 -0
- package/Samples~/Serialization - JSON/Scripts/Samples.UnityHelpers.Serialization.Json.asmdef.meta +8 -0
- package/Samples~/Serialization - JSON/Scripts.meta +9 -0
- package/Samples~/Serialization - JSON.meta +9 -0
- package/Samples~/Spatial Structures - 2D and 3D/README.md +14 -0
- package/Samples~/Spatial Structures - 2D and 3D/README.md.meta +8 -0
- package/Samples~/Spatial Structures - 2D and 3D/Scripts/Samples.UnityHelpers.SpatialStructures.asmdef +17 -0
- package/Samples~/Spatial Structures - 2D and 3D/Scripts/Samples.UnityHelpers.SpatialStructures.asmdef.meta +8 -0
- package/Samples~/Spatial Structures - 2D and 3D/Scripts/SpatialStructuresDemo.cs +62 -0
- package/Samples~/Spatial Structures - 2D and 3D/Scripts/SpatialStructuresDemo.cs.meta +12 -0
- package/Samples~/Spatial Structures - 2D and 3D/Scripts.meta +9 -0
- package/Samples~/Spatial Structures - 2D and 3D.meta +9 -0
- package/Samples~/UGUI - EnhancedImage/README.md +13 -0
- package/Samples~/UGUI - EnhancedImage/README.md.meta +8 -0
- package/Samples~/UGUI - EnhancedImage/Scripts/EnhancedImageDemo.cs +36 -0
- package/Samples~/UGUI - EnhancedImage/Scripts/EnhancedImageDemo.cs.meta +12 -0
- package/Samples~/UGUI - EnhancedImage/Scripts/Samples.UnityHelpers.UGUI.EnhancedImage.asmdef +17 -0
- package/Samples~/UGUI - EnhancedImage/Scripts/Samples.UnityHelpers.UGUI.EnhancedImage.asmdef.meta +8 -0
- package/Samples~/UGUI - EnhancedImage/Scripts.meta +9 -0
- package/Samples~/UGUI - EnhancedImage.meta +9 -0
- package/Samples~/UI Toolkit - MultiFile Selector (Editor)/README.md +13 -0
- package/Samples~/UI Toolkit - MultiFile Selector (Editor)/README.md.meta +8 -0
- package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/MultiFileSelectorSampleWindow.cs +45 -0
- package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/MultiFileSelectorSampleWindow.cs.meta +12 -0
- package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/Samples.UnityHelpers.UIToolkit.Editor.asmdef +19 -0
- package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor/Samples.UnityHelpers.UIToolkit.Editor.asmdef.meta +8 -0
- package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts/Editor.meta +9 -0
- package/Samples~/UI Toolkit - MultiFile Selector (Editor)/Scripts.meta +9 -0
- package/Samples~/UI Toolkit - MultiFile Selector (Editor).meta +9 -0
- package/Shaders/Materials/BackgroundMask-Material.mat +59 -59
- package/Shaders/Materials/BackgroundMask-Material.mat.meta +8 -8
- package/Shaders/Materials.meta +8 -8
- package/Shaders/ShaderGraph/BackgroundMask.shadergraph +1653 -1653
- package/Shaders/ShaderGraph/BackgroundMask.shadergraph.meta +10 -10
- package/Shaders/ShaderGraph/DebugDisplayValue.shadersubgraph +835 -835
- package/Shaders/ShaderGraph/DebugDisplayValue.shadersubgraph.meta +10 -10
- package/Shaders/ShaderGraph.meta +8 -8
- package/Shaders/Support/EnhancedImageSupport.shader +64 -0
- package/Shaders/Support/EnhancedImageSupport.shader.meta +9 -0
- package/Shaders/Support.meta +8 -0
- package/Shaders.meta +8 -8
- package/Styles/Elements/Progress/ArcedProgressBar.cs +345 -345
- package/Styles/Elements/Progress/ArcedProgressBar.cs.meta +2 -2
- package/Styles/Elements/Progress/CircularProgressBar.cs +307 -307
- package/Styles/Elements/Progress/CircularProgressBar.cs.meta +2 -2
- package/Styles/Elements/Progress/GlitchProgressBar.cs +416 -416
- package/Styles/Elements/Progress/GlitchProgressBar.cs.meta +2 -2
- package/Styles/Elements/Progress/LiquidProgressBar.cs +632 -632
- package/Styles/Elements/Progress/LiquidProgressBar.cs.meta +2 -2
- package/Styles/Elements/Progress/MarchingAntsProgressBar.cs +722 -722
- package/Styles/Elements/Progress/MarchingAntsProgressBar.cs.meta +2 -2
- package/Styles/Elements/Progress/RegularProgressBar.cs +405 -405
- package/Styles/Elements/Progress/RegularProgressBar.cs.meta +2 -2
- package/Styles/Elements/Progress/WigglyProgressBar.cs +837 -837
- package/Styles/Elements/Progress/WigglyProgressBar.cs.meta +2 -2
- package/Styles/Elements/Progress.meta +2 -2
- package/Styles/Elements.meta +2 -2
- package/Styles/USS/ArcedProgressBar.uss +18 -18
- package/Styles/USS/ArcedProgressBar.uss.meta +2 -2
- package/Styles/USS/CirclularProgressBar.uss +17 -17
- package/Styles/USS/CirclularProgressBar.uss.meta +2 -2
- package/Styles/USS/RegularProgressBar.uss +32 -32
- package/Styles/USS/RegularProgressBar.uss.meta +2 -2
- package/Styles/USS/WigglyProgressBar.uss +16 -16
- package/Styles/USS/WigglyProgressBar.uss.meta +2 -2
- package/Styles/USS.meta +2 -2
- package/Styles/WallstopStudios.UnityHelpers.Styles.asmdef +14 -17
- package/Styles/WallstopStudios.UnityHelpers.Styles.asmdef.meta +7 -7
- package/Styles.meta +2 -2
- package/THIRD_PARTY_NOTICES.md +74 -0
- package/THIRD_PARTY_NOTICES.md.meta +7 -0
- package/Tests/Editor/Attributes/AnimationEventHelpersTests.cs +171 -0
- package/Tests/Editor/Attributes/AnimationEventHelpersTests.cs.meta +11 -0
- package/Tests/Editor/Attributes.meta +8 -0
- package/Tests/Editor/Core/Attributes/RelationalComponentAssignerTests.cs +118 -0
- package/Tests/Editor/Core/Attributes/RelationalComponentAssignerTests.cs.meta +11 -0
- package/Tests/Editor/Core/Attributes.meta +8 -0
- package/Tests/Editor/Core.meta +8 -0
- package/Tests/Editor/Extensions/SerializedPropertyExtensionsTests.cs +194 -0
- package/Tests/Editor/Extensions/SerializedPropertyExtensionsTests.cs.meta +3 -0
- package/Tests/Editor/Extensions.meta +3 -0
- package/Tests/Editor/Helper/DummyScriptableObject.cs +6 -0
- package/Tests/Editor/Helper/DummyScriptableObject.cs.meta +3 -0
- package/Tests/Editor/Helper/HelpersTests.cs +101 -0
- package/Tests/Editor/Helper/HelpersTests.cs.meta +3 -0
- package/Tests/Editor/Helper/ObjectHelpersEditorTests.cs +63 -0
- package/Tests/Editor/Helper/ObjectHelpersEditorTests.cs.meta +11 -0
- package/Tests/Editor/Helper/PromptScope.cs +28 -0
- package/Tests/Editor/Helper/PromptScope.cs.meta +11 -0
- package/Tests/Editor/Helper/ReflectionHelpersEditorTests.cs +105 -0
- package/Tests/Editor/Helper/ReflectionHelpersEditorTests.cs.meta +11 -0
- package/Tests/Editor/Helper/SpriteHelpersTests.cs +334 -0
- package/Tests/Editor/Helper/SpriteHelpersTests.cs.meta +3 -0
- package/Tests/Editor/Helper/SpriteSettingsApplierAdditionalTests.cs +183 -0
- package/Tests/Editor/Helper/SpriteSettingsApplierAdditionalTests.cs.meta +11 -0
- package/Tests/Editor/Helper/SpriteSettingsApplierTests.cs +161 -0
- package/Tests/Editor/Helper/SpriteSettingsApplierTests.cs.meta +11 -0
- package/Tests/Editor/Helper.meta +3 -0
- package/Tests/Editor/Integrations/VContainer/VContainerIntegrationCompilationTests.cs +40 -0
- package/Tests/Editor/Integrations/VContainer/VContainerIntegrationCompilationTests.cs.meta +11 -0
- package/Tests/Editor/Integrations/VContainer/VContainerRelationalEntryPointTests.cs +81 -0
- package/Tests/Editor/Integrations/VContainer/VContainerRelationalEntryPointTests.cs.meta +11 -0
- package/Tests/Editor/Integrations/VContainer/VContainerRelationalHelpersTests.cs +170 -0
- package/Tests/Editor/Integrations/VContainer/VContainerRelationalHelpersTests.cs.meta +11 -0
- package/Tests/Editor/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Editor.VContainer.asmdef +37 -0
- package/Tests/Editor/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Editor.VContainer.asmdef.meta +7 -0
- package/Tests/Editor/Integrations/VContainer.meta +8 -0
- package/Tests/Editor/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Editor.Zenject.asmdef +37 -0
- package/Tests/Editor/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Editor.Zenject.asmdef.meta +7 -0
- package/Tests/Editor/Integrations/Zenject/ZenjectIntegrationCompilationTests.cs +40 -0
- package/Tests/Editor/Integrations/Zenject/ZenjectIntegrationCompilationTests.cs.meta +11 -0
- package/Tests/Editor/Integrations/Zenject/ZenjectRelationalHelpersTests.cs +131 -0
- package/Tests/Editor/Integrations/Zenject/ZenjectRelationalHelpersTests.cs.meta +11 -0
- package/Tests/Editor/Integrations/Zenject/ZenjectRelationalInitializerTests.cs +80 -0
- package/Tests/Editor/Integrations/Zenject/ZenjectRelationalInitializerTests.cs.meta +11 -0
- package/Tests/Editor/Integrations/Zenject.meta +8 -0
- package/Tests/Editor/Integrations.meta +8 -0
- package/Tests/Editor/MultiFileSelectorElementTests.cs +265 -0
- package/Tests/Editor/MultiFileSelectorElementTests.cs.meta +11 -0
- package/Tests/Editor/MultiFileSelectorPersistenceManagerTests.cs +100 -0
- package/Tests/Editor/MultiFileSelectorPersistenceManagerTests.cs.meta +11 -0
- package/Tests/Editor/PersistentDirectorySettingsTests.cs +59 -0
- package/Tests/Editor/PersistentDirectorySettingsTests.cs.meta +11 -0
- package/Tests/Editor/PrefabCheckerReportTests.cs +32 -0
- package/Tests/Editor/PrefabCheckerReportTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/AnimationCopierFilterTests.cs +64 -0
- package/Tests/Editor/Sprites/AnimationCopierFilterTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/AnimationCopierWindowTests.cs +199 -0
- package/Tests/Editor/Sprites/AnimationCopierWindowTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/AnimationViewerWindowTests.cs +38 -0
- package/Tests/Editor/Sprites/AnimationViewerWindowTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/ScriptableSpriteAtlasEditorTests.cs +108 -0
- package/Tests/Editor/Sprites/ScriptableSpriteAtlasEditorTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/SpriteCropperAdditionalTests.cs +323 -0
- package/Tests/Editor/Sprites/SpriteCropperAdditionalTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/SpriteCropperTests.cs +162 -0
- package/Tests/Editor/Sprites/SpriteCropperTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/SpritePivotAdjusterAdditionalTests.cs +227 -0
- package/Tests/Editor/Sprites/SpritePivotAdjusterAdditionalTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/SpritePivotAdjusterTests.cs +113 -0
- package/Tests/Editor/Sprites/SpritePivotAdjusterTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/TexturePlatformNameHelperTests.cs +46 -0
- package/Tests/Editor/Sprites/TexturePlatformNameHelperTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/TextureResizerWizardTests.cs +248 -0
- package/Tests/Editor/Sprites/TextureResizerWizardTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/TextureSettingsApplierAPITests.cs +180 -0
- package/Tests/Editor/Sprites/TextureSettingsApplierAPITests.cs.meta +11 -0
- package/Tests/Editor/Sprites/TextureSettingsApplierWizardAdditionalTests.cs +295 -0
- package/Tests/Editor/Sprites/TextureSettingsApplierWizardAdditionalTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/TextureSettingsApplierWizardTests.cs +134 -0
- package/Tests/Editor/Sprites/TextureSettingsApplierWizardTests.cs.meta +11 -0
- package/Tests/Editor/Sprites.meta +8 -0
- package/Tests/Editor/TestComponents/PrewarmTesterComponent.cs +10 -0
- package/Tests/Editor/TestComponents/PrewarmTesterComponent.cs.meta +11 -0
- package/Tests/Editor/TestComponents.meta +8 -0
- package/Tests/Editor/Tools/ImageBlurToolTests.cs +47 -0
- package/Tests/Editor/Tools/ImageBlurToolTests.cs.meta +11 -0
- package/Tests/Editor/Tools.meta +8 -0
- package/Tests/Editor/Utils/CommonTestBase.cs +250 -0
- package/Tests/Editor/Utils/CommonTestBase.cs.meta +11 -0
- package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorEditorTests.cs +306 -0
- package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorEditorTests.cs.meta +9 -0
- package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorTests.cs +183 -0
- package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorTests.cs.meta +11 -0
- package/Tests/Editor/Utils/ScriptableObjectSingletonTests.cs +466 -0
- package/Tests/Editor/Utils/ScriptableObjectSingletonTests.cs.meta +11 -0
- package/Tests/Editor/Utils.meta +3 -0
- package/Tests/Editor/WallstopStudios.UnityHelpers.Tests.Editor.asmdef +19 -0
- package/Tests/Editor/WallstopStudios.UnityHelpers.Tests.Editor.asmdef.meta +7 -0
- package/Tests/Editor/Windows/FitTextureSizeWindowTests.cs +773 -0
- package/Tests/Editor/Windows/FitTextureSizeWindowTests.cs.meta +11 -0
- package/Tests/Editor/Windows/PrefabCheckerFolderAdditionTests.cs +96 -0
- package/Tests/Editor/Windows/PrefabCheckerFolderAdditionTests.cs.meta +11 -0
- package/Tests/Editor/Windows/PrefabCheckerTests.cs +81 -0
- package/Tests/Editor/Windows/PrefabCheckerTests.cs.meta +11 -0
- package/Tests/Editor/Windows.meta +8 -0
- package/Tests/Editor.meta +8 -0
- package/Tests/Runtime/AssemblyInfo.cs +4 -0
- package/Tests/Runtime/AssemblyInfo.cs.meta +3 -0
- package/Tests/Runtime/Attributes/ChildComponentTests.cs +766 -81
- package/Tests/Runtime/Attributes/ChildComponentTests.cs.meta +2 -2
- package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs +28 -28
- package/Tests/Runtime/Attributes/Components/ExpectChildSpriteRenderers.cs.meta +2 -2
- package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs +28 -28
- package/Tests/Runtime/Attributes/Components/ExpectParentSpriteRenderers.cs.meta +2 -2
- package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentTesterComplex.cs +34 -34
- package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentTesterComplex.cs.meta +2 -2
- package/Tests/Runtime/Attributes/Components/RelationalComponentsTesterSimple.cs +37 -0
- package/Tests/Runtime/{Components → Attributes/Components}/RelationalComponentsTesterSimple.cs.meta +2 -2
- package/Tests/Runtime/Attributes/Components.meta +2 -2
- package/Tests/Runtime/Attributes/MiscRuntimeAttributeTests.cs +75 -0
- package/Tests/Runtime/Attributes/MiscRuntimeAttributeTests.cs.meta +11 -0
- package/Tests/Runtime/Attributes/NotNullAttributeTests.cs +26 -0
- package/Tests/Runtime/Attributes/NotNullAttributeTests.cs.meta +3 -0
- package/Tests/Runtime/Attributes/ParentComponentTests.cs +565 -68
- package/Tests/Runtime/Attributes/ParentComponentTests.cs.meta +2 -2
- package/Tests/Runtime/Attributes/RelationalComponentAdvancedTests.cs +614 -0
- package/Tests/Runtime/Attributes/RelationalComponentAdvancedTests.cs.meta +11 -0
- package/Tests/Runtime/Attributes/RelationalComponentBackwardCompatibilityTests.cs +478 -0
- package/Tests/Runtime/Attributes/RelationalComponentBackwardCompatibilityTests.cs.meta +11 -0
- package/Tests/Runtime/Attributes/RelationalComponentExtensionsTests.cs +56 -0
- package/Tests/Runtime/Attributes/RelationalComponentExtensionsTests.cs.meta +11 -0
- package/Tests/Runtime/Attributes/RelationalComponentHashSetTests.cs +226 -0
- package/Tests/Runtime/Attributes/RelationalComponentHashSetTests.cs.meta +11 -0
- package/Tests/Runtime/Attributes/RelationalComponentInitializerTests.cs +98 -0
- package/Tests/Runtime/Attributes/RelationalComponentInitializerTests.cs.meta +11 -0
- package/Tests/Runtime/Attributes/RelationalComponentTagAndNameFilterEdgeTests.cs +234 -0
- package/Tests/Runtime/Attributes/RelationalComponentTagAndNameFilterEdgeTests.cs.meta +11 -0
- package/Tests/Runtime/Attributes/SiblingComponentTests.cs +721 -0
- package/Tests/Runtime/Attributes/SiblingComponentTests.cs.meta +11 -0
- package/Tests/Runtime/Attributes/ValidateAssignmentAttributeTests.cs +96 -0
- package/Tests/Runtime/Attributes/ValidateAssignmentAttributeTests.cs.meta +11 -0
- package/Tests/Runtime/Attributes.meta +2 -2
- package/Tests/Runtime/Core/Random/RandomComparerTests.cs +166 -0
- package/Tests/Runtime/Core/Random/RandomComparerTests.cs.meta +11 -0
- package/Tests/Runtime/Core/Random.meta +8 -0
- package/Tests/Runtime/Core/Threading/SingleThreadedThreadPoolTests.cs +56 -56
- package/Tests/Runtime/Core/Threading/SingleThreadedThreadPoolTests.cs.meta +2 -2
- package/Tests/Runtime/Core/Threading.meta +2 -2
- package/Tests/Runtime/Core.meta +2 -2
- package/Tests/Runtime/DataStructures/BalancedKDTree2DTests.cs +562 -0
- package/Tests/Runtime/DataStructures/{BalancedKDTreeTests.cs.meta → BalancedKDTree2DTests.cs.meta} +11 -11
- package/Tests/Runtime/DataStructures/BalancedKDTree3DTests.cs +10 -0
- package/Tests/Runtime/DataStructures/BalancedKDTree3DTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/BitSetTests.cs +1400 -0
- package/Tests/Runtime/DataStructures/BitSetTests.cs.meta +3 -0
- package/Tests/Runtime/DataStructures/BoundingBox3DTests.cs +1215 -0
- package/Tests/Runtime/DataStructures/BoundingBox3DTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/CircleTests.cs +965 -0
- package/Tests/Runtime/DataStructures/CircleTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/CyclicBufferTests.cs +2083 -324
- package/Tests/Runtime/DataStructures/CyclicBufferTests.cs.meta +2 -2
- package/Tests/Runtime/DataStructures/DequeTests.cs +790 -0
- package/Tests/Runtime/DataStructures/DequeTests.cs.meta +3 -0
- package/Tests/Runtime/DataStructures/DisjointSetTests.cs +1114 -0
- package/Tests/Runtime/DataStructures/DisjointSetTests.cs.meta +3 -0
- package/Tests/Runtime/DataStructures/FastOneOfTests.cs +966 -0
- package/Tests/Runtime/DataStructures/FastOneOfTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/FastVector2IntTests.cs +286 -0
- package/Tests/Runtime/DataStructures/FastVector2IntTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/FastVector3IntTests.cs +414 -0
- package/Tests/Runtime/DataStructures/FastVector3IntTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/HeapTests.cs +1953 -0
- package/Tests/Runtime/DataStructures/HeapTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/ImmutableBitSetTests.cs +833 -0
- package/Tests/Runtime/DataStructures/ImmutableBitSetTests.cs.meta +3 -0
- package/Tests/Runtime/DataStructures/KDTree3DTestsBase.cs +297 -0
- package/Tests/Runtime/DataStructures/KDTree3DTestsBase.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/OctTree3DTests.cs +351 -0
- package/Tests/Runtime/DataStructures/OctTree3DTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/PriorityQueueTests.cs +71 -0
- package/Tests/Runtime/DataStructures/PriorityQueueTests.cs.meta +3 -0
- package/Tests/Runtime/DataStructures/ProtobufSerializationTests.cs +475 -0
- package/Tests/Runtime/DataStructures/ProtobufSerializationTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/QuadTree2DTests.cs +660 -0
- package/Tests/Runtime/DataStructures/QuadTree2DTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/RTree2DTests.cs +823 -0
- package/Tests/Runtime/DataStructures/RTree2DTests.cs.meta +3 -0
- package/Tests/Runtime/DataStructures/RTree3DTests.cs +270 -0
- package/Tests/Runtime/DataStructures/RTree3DTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/SparseSetTests.cs +1146 -0
- package/Tests/Runtime/DataStructures/SparseSetTests.cs.meta +3 -0
- package/Tests/Runtime/DataStructures/SpatialHashTests.cs +992 -0
- package/Tests/Runtime/DataStructures/SpatialHashTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/SpatialTree2DBoundsConsistencyTests.cs +351 -0
- package/Tests/Runtime/DataStructures/SpatialTree2DBoundsConsistencyTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/SpatialTree2DBoundsEdgeTests.cs +127 -0
- package/Tests/Runtime/DataStructures/SpatialTree2DBoundsEdgeTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/SpatialTree2DBoundsFuzzTests.cs +218 -0
- package/Tests/Runtime/DataStructures/SpatialTree2DBoundsFuzzTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/SpatialTree2DTests.cs +396 -0
- package/Tests/Runtime/DataStructures/SpatialTree2DTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/SpatialTree3DBoundsConsistencyTests.cs +281 -0
- package/Tests/Runtime/DataStructures/SpatialTree3DBoundsConsistencyTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/SpatialTree3DBoundsEdgeTests.cs +127 -0
- package/Tests/Runtime/DataStructures/SpatialTree3DBoundsEdgeTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/SpatialTree3DBoundsFuzzTests.cs +170 -0
- package/Tests/Runtime/DataStructures/SpatialTree3DBoundsFuzzTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/SpatialTree3DTests.cs +474 -0
- package/Tests/Runtime/DataStructures/SpatialTree3DTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/SphereTests.cs +806 -0
- package/Tests/Runtime/DataStructures/SphereTests.cs.meta +3 -0
- package/Tests/Runtime/DataStructures/StringWrapperTests.cs +333 -0
- package/Tests/Runtime/DataStructures/StringWrapperTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/TimedCacheTests.cs +669 -0
- package/Tests/Runtime/DataStructures/TimedCacheTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/TrieTests.cs +3385 -0
- package/Tests/Runtime/DataStructures/TrieTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures/UnbalancedKDTree2DTests.cs +565 -0
- package/Tests/Runtime/DataStructures/{UnbalancedKDTreeTests.cs.meta → UnbalancedKDTree2DTests.cs.meta} +11 -11
- package/Tests/Runtime/DataStructures/UnbalancedKDTree3DTests.cs +10 -0
- package/Tests/Runtime/DataStructures/UnbalancedKDTree3DTests.cs.meta +11 -0
- package/Tests/Runtime/DataStructures.meta +8 -8
- package/Tests/Runtime/Extensions/AnimatorExtensionsTests.cs +28 -0
- package/Tests/Runtime/Extensions/AnimatorExtensionsTests.cs.meta +11 -0
- package/Tests/Runtime/Extensions/AsyncOperationExtensionsTests.cs +667 -0
- package/Tests/Runtime/Extensions/AsyncOperationExtensionsTests.cs.meta +11 -0
- package/Tests/Runtime/Extensions/CircleExtensionsTests.cs +230 -0
- package/Tests/Runtime/Extensions/CircleExtensionsTests.cs.meta +11 -0
- package/Tests/Runtime/Extensions/ColorExtensionsTests.cs +55 -0
- package/Tests/Runtime/Extensions/ColorExtensionsTests.cs.meta +11 -0
- package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs +724 -438
- package/Tests/Runtime/Extensions/DictionaryExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/DirectionExtensionsComprehensiveTests.cs +403 -0
- package/Tests/Runtime/Extensions/DirectionExtensionsComprehensiveTests.cs.meta +11 -0
- package/Tests/Runtime/Extensions/DirectionExtensionsTests.cs +69 -0
- package/Tests/Runtime/Extensions/DirectionExtensionsTests.cs.meta +11 -0
- package/Tests/Runtime/Extensions/EnumExtensionTests.cs +809 -153
- package/Tests/Runtime/Extensions/EnumExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/IEnumerableExtensionsTests.cs +191 -0
- package/Tests/Runtime/Extensions/IEnumerableExtensionsTests.cs.meta +11 -0
- package/Tests/Runtime/Extensions/IListExtensionTests.cs +955 -169
- package/Tests/Runtime/Extensions/IListExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/IReadonlyListExtensionTests.cs +266 -58
- package/Tests/Runtime/Extensions/IReadonlyListExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/LoggingExtensionTests.cs +721 -718
- package/Tests/Runtime/Extensions/LoggingExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/ProtoEqualityExtensionsTests.cs +565 -0
- package/Tests/Runtime/Extensions/ProtoEqualityExtensionsTests.cs.meta +3 -0
- package/Tests/Runtime/Extensions/ProtoEqualityPolymorphismTests.cs +100 -0
- package/Tests/Runtime/Extensions/ProtoEqualityPolymorphismTests.cs.meta +11 -0
- package/Tests/Runtime/Extensions/RandomExtensionTests.cs +719 -27
- package/Tests/Runtime/Extensions/RandomExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/StringExtensionTests.cs +2592 -31
- package/Tests/Runtime/Extensions/StringExtensionTests.cs.meta +2 -2
- package/Tests/Runtime/Extensions/UnityExtensionsBasicTests.cs +166 -0
- package/Tests/Runtime/Extensions/UnityExtensionsBasicTests.cs.meta +11 -0
- package/Tests/Runtime/Extensions/UnityExtensionsComprehensiveTests.cs +1446 -0
- package/Tests/Runtime/Extensions/UnityExtensionsComprehensiveTests.cs.meta +11 -0
- package/Tests/Runtime/Extensions/UnityExtensionsMathTests.cs +1779 -0
- package/Tests/Runtime/Extensions/UnityExtensionsMathTests.cs.meta +11 -0
- package/Tests/Runtime/Extensions/UnityExtensionsVector2HullTests.cs +292 -0
- package/Tests/Runtime/Extensions/UnityExtensionsVector2HullTests.cs.meta +11 -0
- package/Tests/Runtime/Extensions/UnityLogTagFormatterEdgeTests.cs +260 -0
- package/Tests/Runtime/Extensions/UnityLogTagFormatterEdgeTests.cs.meta +11 -0
- package/Tests/Runtime/Extensions.meta +2 -2
- package/Tests/Runtime/Helper/ArrayConverterTests.cs +19 -19
- package/Tests/Runtime/Helper/ArrayConverterTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/AssignUtilitiesTests.cs +38 -0
- package/Tests/Runtime/Helper/AssignUtilitiesTests.cs.meta +11 -0
- package/Tests/Runtime/Helper/DirectoryHelperTests.cs +347 -0
- package/Tests/Runtime/Helper/DirectoryHelperTests.cs.meta +11 -0
- package/Tests/Runtime/Helper/EnumerablesTests.cs +45 -0
- package/Tests/Runtime/Helper/EnumerablesTests.cs.meta +11 -0
- package/Tests/Runtime/Helper/FileHelperTests.cs +481 -0
- package/Tests/Runtime/Helper/FileHelperTests.cs.meta +11 -0
- package/Tests/Runtime/Helper/FormattingHelpersTests.cs +353 -0
- package/Tests/Runtime/Helper/FormattingHelpersTests.cs.meta +11 -0
- package/Tests/Runtime/Helper/FuncBasedComparerTests.cs +27 -0
- package/Tests/Runtime/Helper/FuncBasedComparerTests.cs.meta +11 -0
- package/Tests/Runtime/Helper/GeometryTests.cs +517 -0
- package/Tests/Runtime/Helper/GeometryTests.cs.meta +3 -0
- package/Tests/Runtime/Helper/HelpersTests.cs +749 -0
- package/Tests/Runtime/Helper/HelpersTests.cs.meta +11 -0
- package/Tests/Runtime/Helper/IterationHelpersTests.cs +173 -0
- package/Tests/Runtime/Helper/IterationHelpersTests.cs.meta +11 -0
- package/Tests/Runtime/Helper/LineHelperTests.cs +662 -0
- package/Tests/Runtime/Helper/LineHelperTests.cs.meta +11 -0
- package/Tests/Runtime/Helper/ObjectHelperTests.cs +444 -432
- package/Tests/Runtime/Helper/ObjectHelperTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/ObjectsTests.cs +363 -0
- package/Tests/Runtime/Helper/ObjectsTests.cs.meta +3 -0
- package/Tests/Runtime/Helper/PathHelperTests.cs +183 -0
- package/Tests/Runtime/Helper/PathHelperTests.cs.meta +11 -0
- package/Tests/Runtime/Helper/ReflectionHelperTests.cs +2199 -1493
- package/Tests/Runtime/Helper/ReflectionHelperTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/ReflectionHelpersMemberLookupTests.cs +192 -0
- package/Tests/Runtime/Helper/ReflectionHelpersMemberLookupTests.cs.meta +11 -0
- package/Tests/Runtime/Helper/ReflectionHelpersTypeScanningTests.cs +58 -0
- package/Tests/Runtime/Helper/ReflectionHelpersTypeScanningTests.cs.meta +11 -0
- package/Tests/Runtime/Helper/SceneHelperTests.cs +77 -94
- package/Tests/Runtime/Helper/SceneHelperTests.cs.meta +2 -2
- package/Tests/Runtime/Helper/UnityMainThreadDispatcherTests.cs +45 -0
- package/Tests/Runtime/Helper/UnityMainThreadDispatcherTests.cs.meta +11 -0
- package/Tests/Runtime/Helper/WallMathTests.cs +1884 -233
- package/Tests/Runtime/Helper/WallMathTests.cs.meta +2 -2
- package/Tests/Runtime/Helper.meta +2 -2
- package/Tests/Runtime/Integrations/VContainer/RelationalComponentsVContainerTests.cs +601 -0
- package/Tests/Runtime/Integrations/VContainer/RelationalComponentsVContainerTests.cs.meta +11 -0
- package/Tests/Runtime/Integrations/VContainer/RelationalObjectPoolsVContainerTests.cs +86 -0
- package/Tests/Runtime/Integrations/VContainer/RelationalObjectPoolsVContainerTests.cs.meta +11 -0
- package/Tests/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Runtime.VContainer.asmdef +38 -0
- package/Tests/Runtime/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Runtime.VContainer.asmdef.meta +7 -0
- package/Tests/Runtime/Integrations/VContainer.meta +8 -0
- package/Tests/Runtime/Integrations/Zenject/RelationalComponentsZenjectTests.cs +619 -0
- package/Tests/Runtime/Integrations/Zenject/RelationalComponentsZenjectTests.cs.meta +11 -0
- package/Tests/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Runtime.Zenject.asmdef +38 -0
- package/Tests/Runtime/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Runtime.Zenject.asmdef.meta +7 -0
- package/Tests/Runtime/Integrations/Zenject.meta +8 -0
- package/Tests/Runtime/Integrations.meta +8 -0
- package/Tests/Runtime/Math/Line2DTests.cs +594 -0
- package/Tests/Runtime/Math/Line2DTests.cs.meta +11 -0
- package/Tests/Runtime/Math/Line3DTests.cs +655 -0
- package/Tests/Runtime/Math/Line3DTests.cs.meta +11 -0
- package/Tests/Runtime/Math/LineTests.cs +480 -0
- package/Tests/Runtime/Math/LineTests.cs.meta +11 -0
- package/Tests/Runtime/Math/ParabolaTests.cs +477 -0
- package/Tests/Runtime/Math/ParabolaTests.cs.meta +11 -0
- package/Tests/Runtime/Math/PointPolygonCheckTests.cs +939 -0
- package/Tests/Runtime/Math/PointPolygonCheckTests.cs.meta +11 -0
- package/Tests/Runtime/Math/RangeTests.cs +197 -0
- package/Tests/Runtime/Math/RangeTests.cs.meta +11 -0
- package/Tests/Runtime/Math.meta +8 -0
- package/Tests/Runtime/Performance/BenchmarkReadmeUpdater.cs +81 -0
- package/Tests/Runtime/Performance/BenchmarkReadmeUpdater.cs.meta +11 -0
- package/Tests/Runtime/Performance/JsonSerializationPerformanceTests.cs +421 -0
- package/Tests/Runtime/Performance/JsonSerializationPerformanceTests.cs.meta +3 -0
- package/Tests/Runtime/Performance/ListExtensionPerformanceTests.cs +76 -76
- package/Tests/Runtime/Performance/ListExtensionPerformanceTests.cs.meta +2 -2
- package/Tests/Runtime/Performance/ProtoEqualsPerformanceTests.cs +161 -0
- package/Tests/Runtime/Performance/ProtoEqualsPerformanceTests.cs.meta +11 -0
- package/Tests/Runtime/Performance/ProtoSerializationPerformanceTests.cs +207 -0
- package/Tests/Runtime/Performance/ProtoSerializationPerformanceTests.cs.meta +3 -0
- package/Tests/Runtime/Performance/RandomPerformanceTests.cs +195 -181
- package/Tests/Runtime/Performance/RandomPerformanceTests.cs.meta +11 -11
- package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs +60 -61
- package/Tests/Runtime/Performance/RelationComponentPerformanceTests.cs.meta +2 -2
- package/Tests/Runtime/Performance/SpatialTree2DPerformanceTests.cs +697 -0
- package/Tests/Runtime/Performance/SpatialTree2DPerformanceTests.cs.meta +11 -0
- package/Tests/Runtime/Performance/SpatialTree3DPerformanceTests.cs +653 -0
- package/Tests/Runtime/Performance/SpatialTree3DPerformanceTests.cs.meta +11 -0
- package/Tests/Runtime/Performance.meta +8 -8
- package/Tests/Runtime/Random/DotNetRandomTests.cs +9 -9
- package/Tests/Runtime/Random/DotNetRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/IllusionFlowTests.cs +12 -12
- package/Tests/Runtime/Random/IllusionFlowTests.cs.meta +2 -2
- package/Tests/Runtime/Random/LinearCongruentialGeneratorTests.cs +12 -12
- package/Tests/Runtime/Random/LinearCongruentialGeneratorTests.cs.meta +2 -2
- package/Tests/Runtime/Random/PcgRandomTests.cs +9 -9
- package/Tests/Runtime/Random/PcgRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/RandomProtoSerializationTests.cs +494 -0
- package/Tests/Runtime/Random/RandomProtoSerializationTests.cs.meta +3 -0
- package/Tests/Runtime/Random/RandomStateSerializationTests.cs +304 -0
- package/Tests/Runtime/Random/RandomStateSerializationTests.cs.meta +4 -0
- package/Tests/Runtime/Random/RandomTestBase.cs +836 -787
- package/Tests/Runtime/Random/RandomTestBase.cs.meta +11 -11
- package/Tests/Runtime/Random/RomuDuoRandomTests.cs +9 -9
- package/Tests/Runtime/Random/RomuDuoRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/SplitMix64RandomTests.cs +9 -9
- package/Tests/Runtime/Random/SplitMix64RandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/SquirrelRandomTests.cs +14 -14
- package/Tests/Runtime/Random/SquirrelRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/SystemRandomTests.cs +10 -10
- package/Tests/Runtime/Random/SystemRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/UnityRandomTests.cs +9 -9
- package/Tests/Runtime/Random/UnityRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/WyRandomTests.cs +9 -9
- package/Tests/Runtime/Random/WyRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random/XorShiftRandomTests.cs +9 -9
- package/Tests/Runtime/Random/XorShiftRandomTests.cs.meta +11 -11
- package/Tests/Runtime/Random/XoroShiroRandomTests.cs +9 -9
- package/Tests/Runtime/Random/XoroShiroRandomTests.cs.meta +2 -2
- package/Tests/Runtime/Random.meta +8 -8
- package/Tests/Runtime/RuntimeTestTimeouts.cs +3 -0
- package/Tests/Runtime/RuntimeTestTimeouts.cs.meta +11 -0
- package/Tests/Runtime/Scenes/Test1.unity +723 -723
- package/Tests/Runtime/Scenes/Test1.unity.meta +7 -7
- package/Tests/Runtime/Scenes/Test2.unity +723 -723
- package/Tests/Runtime/Scenes/Test2.unity.meta +7 -7
- package/Tests/Runtime/Scenes.meta +2 -2
- package/Tests/Runtime/Serialization/AdaptersJsonTests.cs +67 -0
- package/Tests/Runtime/Serialization/AdaptersJsonTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/BitSetJsonTests.cs +50 -0
- package/Tests/Runtime/Serialization/BitSetJsonTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/CyclicBufferJsonTests.cs +67 -0
- package/Tests/Runtime/Serialization/CyclicBufferJsonTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/DequeJsonTests.cs +70 -0
- package/Tests/Runtime/Serialization/DequeJsonTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/ImmutableBitSetJsonTests.cs +25 -0
- package/Tests/Runtime/Serialization/ImmutableBitSetJsonTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/JsonConverterAdditionalTests.cs +30 -0
- package/Tests/Runtime/Serialization/JsonConverterAdditionalTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/JsonConverterTests.cs +1153 -0
- package/Tests/Runtime/Serialization/JsonConverterTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/JsonRoundtripComprehensiveTests.cs +239 -0
- package/Tests/Runtime/Serialization/JsonRoundtripComprehensiveTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/JsonSerializationCorrectnessTests.cs +458 -0
- package/Tests/Runtime/Serialization/JsonSerializationCorrectnessTests.cs.meta +3 -0
- package/Tests/Runtime/Serialization/JsonSerializationTest.cs +167 -156
- package/Tests/Runtime/Serialization/JsonSerializationTest.cs.meta +2 -2
- package/Tests/Runtime/Serialization/MathJsonTests.cs +79 -0
- package/Tests/Runtime/Serialization/MathJsonTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/ProtoInterfaceResolutionEdgeTests.cs +76 -0
- package/Tests/Runtime/Serialization/ProtoInterfaceResolutionEdgeTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/ProtoRootRegistrationTests.cs +80 -0
- package/Tests/Runtime/Serialization/ProtoRootRegistrationTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/ProtoRoundtripComprehensiveTests.cs +257 -0
- package/Tests/Runtime/Serialization/ProtoRoundtripComprehensiveTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/ProtoSerializationCorrectnessTests.cs +471 -0
- package/Tests/Runtime/Serialization/ProtoSerializationCorrectnessTests.cs.meta +3 -0
- package/Tests/Runtime/Serialization/ProtoSerializationTests.cs +169 -0
- package/Tests/Runtime/Serialization/ProtoSerializationTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/ProtoSerializeBehaviorTests.cs +62 -0
- package/Tests/Runtime/Serialization/ProtoSerializeBehaviorTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/SerializerAdditionalTests.cs +907 -0
- package/Tests/Runtime/Serialization/SerializerAdditionalTests.cs.meta +3 -0
- package/Tests/Runtime/Serialization/SerializerFileIoTests.cs +105 -0
- package/Tests/Runtime/Serialization/SerializerFileIoTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/TypeConverterTests.cs +34 -0
- package/Tests/Runtime/Serialization/TypeConverterTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/UnityEngineObjectJsonTests.cs +247 -0
- package/Tests/Runtime/Serialization/UnityEngineObjectJsonTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization.meta +2 -2
- package/Tests/Runtime/Tags/AttributeComponentTests.cs +174 -0
- package/Tests/Runtime/Tags/AttributeComponentTests.cs.meta +3 -0
- package/Tests/Runtime/Tags/AttributeDataTests.cs +312 -0
- package/Tests/Runtime/Tags/AttributeDataTests.cs.meta +11 -0
- package/Tests/Runtime/Tags/AttributeUtilitiesTests.cs +405 -0
- package/Tests/Runtime/Tags/AttributeUtilitiesTests.cs.meta +3 -0
- package/Tests/Runtime/Tags/CosmeticAndCollisionTests.cs +147 -0
- package/Tests/Runtime/Tags/CosmeticAndCollisionTests.cs.meta +11 -0
- package/Tests/Runtime/Tags/CosmeticEffectDataTests.cs +60 -0
- package/Tests/Runtime/Tags/CosmeticEffectDataTests.cs.meta +3 -0
- package/Tests/Runtime/Tags/EffectHandleTests.cs +61 -0
- package/Tests/Runtime/Tags/EffectHandleTests.cs.meta +3 -0
- package/Tests/Runtime/Tags/EffectHandlerTests.cs +270 -0
- package/Tests/Runtime/Tags/EffectHandlerTests.cs.meta +3 -0
- package/Tests/Runtime/Tags/Helpers/RecordingCosmeticComponent.cs +39 -0
- package/Tests/Runtime/Tags/Helpers/RecordingCosmeticComponent.cs.meta +3 -0
- package/Tests/Runtime/Tags/Helpers/TagTestBase.cs +49 -0
- package/Tests/Runtime/Tags/Helpers/TagTestBase.cs.meta +3 -0
- package/Tests/Runtime/Tags/Helpers/TestAttributesComponent.cs +28 -0
- package/Tests/Runtime/Tags/Helpers/TestAttributesComponent.cs.meta +3 -0
- package/Tests/Runtime/Tags/Helpers.meta +3 -0
- package/Tests/Runtime/Tags/TagHandlerTests.cs +108 -0
- package/Tests/Runtime/Tags/TagHandlerTests.cs.meta +3 -0
- package/Tests/Runtime/Tags.meta +8 -0
- package/Tests/Runtime/TestUtils/CommonTestBase.cs +301 -0
- package/Tests/Runtime/TestUtils/CommonTestBase.cs.meta +11 -0
- package/Tests/Runtime/TestUtils/GCAssert.cs +55 -0
- package/Tests/Runtime/TestUtils/GCAssert.cs.meta +11 -0
- package/Tests/Runtime/TestUtils/SpatialAssert.cs +33 -0
- package/Tests/Runtime/TestUtils/SpatialAssert.cs.meta +11 -0
- package/Tests/Runtime/TestUtils/SpatialDiagnostics.cs +195 -0
- package/Tests/Runtime/TestUtils/SpatialDiagnostics.cs.meta +11 -0
- package/Tests/Runtime/TestUtils.meta +8 -0
- package/Tests/Runtime/Utils/AnimationEventEqualityComparerTests.cs +144 -0
- package/Tests/Runtime/Utils/AnimationEventEqualityComparerTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/Ascii85Tests.cs +56 -0
- package/Tests/Runtime/Utils/Ascii85Tests.cs.meta +11 -0
- package/Tests/Runtime/Utils/BuffersTests.cs +1148 -741
- package/Tests/Runtime/Utils/BuffersTests.cs.meta +2 -2
- package/Tests/Runtime/Utils/BuffersWaitInstructionTests.cs +31 -0
- package/Tests/Runtime/Utils/BuffersWaitInstructionTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/CenterPointOffsetTests.cs +67 -0
- package/Tests/Runtime/Utils/CenterPointOffsetTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/ChildSpawnerTests.cs +490 -0
- package/Tests/Runtime/Utils/ChildSpawnerTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/CircleLineRendererTests.cs +80 -0
- package/Tests/Runtime/Utils/CircleLineRendererTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/CollisionProxyTests.cs +442 -0
- package/Tests/Runtime/Utils/CollisionProxyTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/CoroutineHandlerTests.cs +353 -0
- package/Tests/Runtime/Utils/CoroutineHandlerTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/DeferredDisposalResultTests.cs +44 -0
- package/Tests/Runtime/Utils/DeferredDisposalResultTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/LZMAComprehensiveTests.cs +249 -0
- package/Tests/Runtime/Utils/LZMAComprehensiveTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/LZMATests.cs +31 -0
- package/Tests/Runtime/Utils/LZMATests.cs.meta +11 -0
- package/Tests/Runtime/Utils/MatchColliderToSpriteAdditionalTests.cs +86 -0
- package/Tests/Runtime/Utils/MatchColliderToSpriteAdditionalTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/MatchColliderToSpriteTests.cs +503 -0
- package/Tests/Runtime/Utils/MatchColliderToSpriteTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/MatchTransformEdgeTests.cs +34 -0
- package/Tests/Runtime/Utils/MatchTransformEdgeTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/MatchTransformTests.cs +495 -0
- package/Tests/Runtime/Utils/MatchTransformTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/OscillatorTests.cs +540 -0
- package/Tests/Runtime/Utils/OscillatorTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/PolygonCollider2DOptimizerTests.cs +52 -0
- package/Tests/Runtime/Utils/PolygonCollider2DOptimizerTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/RuntimeSingletonTests.cs +766 -0
- package/Tests/Runtime/Utils/RuntimeSingletonTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/SerializedStringComparerEdgeTests.cs +47 -0
- package/Tests/Runtime/Utils/SerializedStringComparerEdgeTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/SerializedStringComparerTests.cs +361 -0
- package/Tests/Runtime/Utils/SerializedStringComparerTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs +383 -398
- package/Tests/Runtime/Utils/SpriteRendererMetadataTests.cs.meta +2 -2
- package/Tests/Runtime/Utils/SpriteRendererSyncTests.cs +134 -0
- package/Tests/Runtime/Utils/SpriteRendererSyncTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/StartTrackerTests.cs +24 -0
- package/Tests/Runtime/Utils/StartTrackerTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/TextureScaleEdgeTests.cs +114 -0
- package/Tests/Runtime/Utils/TextureScaleEdgeTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/TextureScaleTests.cs +298 -0
- package/Tests/Runtime/Utils/TextureScaleTests.cs.meta +3 -0
- package/Tests/Runtime/Utils/TypeNameSorterAdditionalTests.cs +36 -0
- package/Tests/Runtime/Utils/TypeNameSorterAdditionalTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/TypeNameSorterTests.cs +34 -0
- package/Tests/Runtime/Utils/TypeNameSorterTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/UnityObjectNameComparerEdgeTests.cs +63 -0
- package/Tests/Runtime/Utils/UnityObjectNameComparerEdgeTests.cs.meta +11 -0
- package/Tests/Runtime/Utils/UnityObjectNameComparerTests.cs +59 -0
- package/Tests/Runtime/Utils/UnityObjectNameComparerTests.cs.meta +11 -0
- package/Tests/Runtime/Utils.meta +2 -2
- package/Tests/Runtime/Visuals/AnimatedSpriteLayerTests.cs +266 -0
- package/Tests/Runtime/Visuals/AnimatedSpriteLayerTests.cs.meta +11 -0
- package/Tests/Runtime/Visuals/EnhancedImageTests.cs +153 -0
- package/Tests/Runtime/Visuals/EnhancedImageTests.cs.meta +11 -0
- package/Tests/Runtime/Visuals/LayeredImageTests.cs +422 -0
- package/Tests/Runtime/Visuals/LayeredImageTests.cs.meta +11 -0
- package/Tests/Runtime/Visuals/VisualsTestHelpers.cs +125 -0
- package/Tests/Runtime/Visuals/VisualsTestHelpers.cs.meta +11 -0
- package/Tests/Runtime/Visuals.meta +3 -0
- package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef +24 -23
- package/Tests/Runtime/WallstopStudios.UnityHelpers.Tests.Runtime.asmdef.meta +7 -7
- package/Tests/Runtime.meta +8 -8
- package/Tests.meta +8 -8
- package/URP/VolumeProfiles/Post Processing Bloom Profile(URP).asset +63 -63
- package/URP/VolumeProfiles/Post Processing Bloom Profile(URP).asset.meta +8 -8
- package/URP/VolumeProfiles.meta +8 -8
- package/URP.meta +8 -8
- package/node_modules.meta +8 -0
- package/package-lock.json.meta +7 -0
- package/package.json +99 -38
- package/package.json.meta +7 -7
- package/scripts/check-eol.ps1 +51 -0
- package/scripts/check-eol.ps1.meta +7 -0
- package/scripts/clean-nul.ps1 +29 -0
- package/scripts/clean-nul.ps1.meta +7 -0
- package/scripts/lint-doc-links.ps1 +80 -0
- package/scripts/lint-doc-links.ps1.meta +7 -0
- package/scripts/lint-tests.ps1 +156 -0
- package/scripts/lint-tests.ps1.meta +7 -0
- package/scripts/normalize-eol.ps1 +68 -0
- package/scripts/normalize-eol.ps1.meta +7 -0
- package/scripts.meta +8 -0
- package/Editor/Sprites/ProjectAnimationSettings.cs +0 -50
- package/Editor/Sprites/ProjectAnimationSettings.cs.meta +0 -3
- package/Editor/Sprites/TextureSettingsApplier.cs +0 -178
- package/Editor/Sprites/TextureSettingsApplier.cs.meta +0 -3
- package/Runtime/Core/Attributes/ParentComponent.cs +0 -189
- package/Runtime/Core/DataStructure/KDTree.cs +0 -434
- package/Runtime/Core/DataStructure/QuadTree.cs +0 -431
- package/Runtime/Core/DataStructure/RTree.cs +0 -356
- package/Runtime/Core/Extension/HashSetExtensions.cs +0 -12
- package/Runtime/Core/Extension/HashSetExtensions.cs.meta +0 -11
- package/Runtime/Core/Math/Line.cs +0 -55
- package/Runtime/Core/Math/Line.cs.meta +0 -11
- package/Runtime/Core/Math/XXHash.cs +0 -310
- package/Runtime/Core/Math/XXHash.cs.meta +0 -11
- package/Tests/Runtime/Components/RelationalComponentsTesterSimple.cs +0 -40
- package/Tests/Runtime/Components.meta +0 -3
- package/Tests/Runtime/DataStructures/BalancedKDTreeTests.cs +0 -14
- package/Tests/Runtime/DataStructures/QuadTreeTests.cs +0 -14
- package/Tests/Runtime/DataStructures/QuadTreeTests.cs.meta +0 -11
- package/Tests/Runtime/DataStructures/SpatialTreeTests.cs +0 -130
- package/Tests/Runtime/DataStructures/SpatialTreeTests.cs.meta +0 -11
- package/Tests/Runtime/DataStructures/UnbalancedKDTreeTests.cs +0 -14
- package/Tests/Runtime/Helper/FormattingHelperTests.cs +0 -129
- package/Tests/Runtime/Helper/FormattingHelperTests.cs.meta +0 -3
- package/Tests/Runtime/Performance/KDTreePerformanceTests.cs +0 -14
- package/Tests/Runtime/Performance/KDTreePerformanceTests.cs.meta +0 -11
- package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs +0 -14
- package/Tests/Runtime/Performance/QuadTreePerformanceTests.cs.meta +0 -11
- package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs +0 -158
- package/Tests/Runtime/Performance/SpatialTreePerformanceTest.cs.meta +0 -11
- package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs +0 -14
- package/Tests/Runtime/Performance/UnbalancedKDTreeTests.cs.meta +0 -11
- package/Third Party Notices.md +0 -1
package/README.md
CHANGED
|
@@ -1,188 +1,1183 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
](https://unity.com/releases/2021-lts)
|
|
4
|
+
[](LICENSE)
|
|
5
|
+
[](https://github.com/wallstop/unity-helpers/actions/workflows/csharpier-autofix.yml)
|
|
6
|
+
[](https://github.com/wallstop/unity-helpers/actions/workflows/markdown-json.yml)
|
|
7
|
+
[](https://github.com/wallstop/unity-helpers/actions/workflows/lint-doc-links.yml)
|
|
8
|
+
[](https://github.com/wallstop/unity-helpers/actions/workflows/npm-publish.yml)
|
|
9
|
+
|
|
10
|
+
**Stop writing boilerplate. Start shipping features.**
|
|
11
|
+
|
|
12
|
+
Unity Helpers eliminates entire categories of repetitive work with production-ready utilities that are 10-100x faster than writing it yourself. From auto-wiring components to blazing-fast spatial queries, this is the toolkit that pays for itself in the first hour.
|
|
13
|
+
|
|
14
|
+
**What makes this different:**
|
|
15
|
+
|
|
16
|
+
- ⚡ **10-15x faster** random generation than Unity.Random
|
|
17
|
+
- 🔌 **Zero boilerplate** component wiring with attributes
|
|
18
|
+
- 🎮 **Designer-friendly** effects system (buffs/debuffs as ScriptableObjects)
|
|
19
|
+
- 🌳 **O(log n)** spatial queries instead of O(n) loops
|
|
20
|
+
- 🛠️ **20+ editor tools** that automate sprite/animation workflows
|
|
21
|
+
- ✅ **4,000+ tests** ensuring production quality
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
**📚 New to Unity Helpers?** Start here: [Getting Started Guide](GETTING_STARTED.md)
|
|
26
|
+
|
|
27
|
+
**🔍 Looking for something specific?** Check the [Feature Index](INDEX.md)
|
|
28
|
+
|
|
29
|
+
**❓ Need a definition?** See the [Glossary](GLOSSARY.md)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## 👋 First Time Here?
|
|
34
|
+
|
|
35
|
+
**Pick your starting point based on your biggest pain point:**
|
|
36
|
+
|
|
37
|
+
| Your Problem | Your Solution | Time to Value |
|
|
38
|
+
| ------------------------------------ | ---------------------------------------------------------------------------------------- | ------------- |
|
|
39
|
+
| 🐌 Writing `GetComponent` everywhere | [**Relational Components**](#relational-components) - Auto-wire with attributes | 2 minutes |
|
|
40
|
+
| 🎮 Need buffs/debuffs system | [**Effects System**](#effects-attributes-and-tags) - Designer-friendly ScriptableObjects | 5 minutes |
|
|
41
|
+
| 🔍 Slow spatial searches | [**Spatial Trees**](#spatial-trees) - O(log n) queries | 5 minutes |
|
|
42
|
+
| 🎲 Random is too slow/limited | [**PRNG.Instance**](#random-number-generators) - 10-15x faster, extensive API | 1 minute |
|
|
43
|
+
| 💾 Need save/load system | [**Serialization**](#serialization) - Unity types just work | 10 minutes |
|
|
44
|
+
| 🛠️ Manual sprite workflows | [**Editor Tools**](#editor-tools) - 20+ automation tools | 3 minutes |
|
|
45
|
+
|
|
46
|
+
**Not sure where to start?** → [Getting Started Guide](GETTING_STARTED.md) walks through the top 3 features in 5 minutes.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## ⚡ Top 5 Time-Savers
|
|
51
|
+
|
|
52
|
+
These features eliminate entire categories of repetitive work. Pick one that solves your immediate pain:
|
|
53
|
+
|
|
54
|
+
### 1. 🔌 Auto-Wire Components
|
|
55
|
+
|
|
56
|
+
#### ⏱️ 10-20 min/script × 100 scripts = 20+ hours saved
|
|
57
|
+
|
|
58
|
+
Stop writing GetComponent boilerplate forever. Replace 20+ lines with 3 attributes:
|
|
59
|
+
|
|
60
|
+
```csharp
|
|
61
|
+
// ❌ OLD WAY: 20+ lines per script
|
|
62
|
+
void Awake() {
|
|
63
|
+
sprite = GetComponent<SpriteRenderer>();
|
|
64
|
+
if (sprite == null) Debug.LogError("Missing SpriteRenderer!");
|
|
65
|
+
|
|
66
|
+
rigidbody = GetComponentInParent<Rigidbody2D>();
|
|
67
|
+
if (rigidbody == null) Debug.LogError("Missing Rigidbody2D!");
|
|
68
|
+
|
|
69
|
+
colliders = GetComponentsInChildren<Collider2D>();
|
|
70
|
+
// 15 more lines...
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// ✅ NEW WAY: 4 lines total
|
|
74
|
+
[SiblingComponent] private SpriteRenderer sprite;
|
|
75
|
+
[ParentComponent] private Rigidbody2D rigidbody;
|
|
76
|
+
[ChildComponent] private Collider2D[] colliders;
|
|
77
|
+
void Awake() => this.AssignRelationalComponents();
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Bonus:** Works with VContainer/Zenject for automatic DI + relational wiring!
|
|
81
|
+
|
|
82
|
+
[📖 Learn More](RELATIONAL_COMPONENTS.md) | [🎯 DI Integration](Samples~/DI%20-%20VContainer/README.md)
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### 2. 🎮 Data-Driven Effects
|
|
87
|
+
|
|
88
|
+
#### ⏱️ 2-4 hours/effect × 50 effects = 150+ hours saved
|
|
89
|
+
|
|
90
|
+
Designers create buffs/debuffs as ScriptableObjects. Zero programmer time after 20-minute setup:
|
|
91
|
+
|
|
92
|
+
```csharp
|
|
93
|
+
// Create once (ScriptableObject in editor):
|
|
94
|
+
// - HasteEffect: Speed × 1.5, duration 5s, tag "Haste", particle effect
|
|
95
|
+
|
|
96
|
+
// Use everywhere (zero boilerplate):
|
|
97
|
+
player.ApplyEffect(hasteEffect); // Apply buff
|
|
98
|
+
if (player.HasTag("Stunned")) return; // Query state
|
|
99
|
+
player.RemoveAllEffectsWithTag("Haste"); // Batch removal
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**What you get:**
|
|
103
|
+
|
|
104
|
+
- Automatic stacking & duration management
|
|
105
|
+
- Reference-counted tags for gameplay queries
|
|
106
|
+
- Cosmetic VFX/SFX that spawn/despawn automatically
|
|
107
|
+
- Designer-friendly iteration without code changes
|
|
108
|
+
|
|
109
|
+
[📖 Full Guide](EFFECTS_SYSTEM.md) | [🚀 5-Minute Tutorial](EFFECTS_SYSTEM_TUTORIAL.md)
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
### 3. 💾 Unity-Aware Serialization
|
|
114
|
+
|
|
115
|
+
#### ⏱️ 40+ hours on initial implementation + prevents player data loss
|
|
116
|
+
|
|
117
|
+
JSON/Protobuf that understands `Vector3`, `GameObject`, `Color` - no custom converters needed:
|
|
118
|
+
|
|
119
|
+
```csharp
|
|
120
|
+
// Vector3, Color, GameObject references just work:
|
|
121
|
+
var saveData = new SaveData {
|
|
122
|
+
playerPosition = new Vector3(1, 2, 3),
|
|
123
|
+
playerColor = Color.cyan,
|
|
124
|
+
inventory = new List<GameObject>()
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
// One line to save:
|
|
128
|
+
byte[] data = Serializer.JsonSerialize(saveData);
|
|
129
|
+
|
|
130
|
+
// Schema evolution = never break old saves:
|
|
131
|
+
[ProtoMember(1)] public int gold;
|
|
132
|
+
[ProtoMember(2)] public Vector3 position;
|
|
133
|
+
// Adding new field? Old saves still load!
|
|
134
|
+
[ProtoMember(3)] public int level; // Safe to add
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Real-world impact:** Ship updates without worrying about corrupting player saves.
|
|
138
|
+
|
|
139
|
+
[📖 Serialization Guide](SERIALIZATION.md)
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
### 4. 🎱 Professional Pooling
|
|
144
|
+
|
|
145
|
+
#### ⏱️ Eliminates GC spikes = 5-10 FPS in complex scenes
|
|
146
|
+
|
|
147
|
+
Zero-allocation queries with automatic cleanup. Thread-safe pooling in one line:
|
|
148
|
+
|
|
149
|
+
```csharp
|
|
150
|
+
// Get pooled buffer - automatically returned on scope exit
|
|
151
|
+
void ProcessEnemies(QuadTree2D<Enemy> enemyTree) {
|
|
152
|
+
using var lease = Buffers<Enemy>.List.Get(out List<Enemy> buffer);
|
|
153
|
+
|
|
154
|
+
// Use it for spatial query - zero allocations!
|
|
155
|
+
enemyTree.GetElementsInRange(playerPos, 10f, buffer);
|
|
156
|
+
|
|
157
|
+
foreach (Enemy enemy in buffer) {
|
|
158
|
+
enemy.TakeDamage(5f);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// Buffer automatically returned to pool here - no cleanup needed
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Why this matters:**
|
|
166
|
+
|
|
167
|
+
- Stable 60 FPS under load (no GC spikes)
|
|
168
|
+
- AI systems querying hundreds of neighbors per frame
|
|
169
|
+
- Particle systems with thousands of particles
|
|
170
|
+
- Works for List, HashSet, Stack, Queue, and Arrays
|
|
171
|
+
|
|
172
|
+
[📖 Buffering Pattern](#buffering-pattern)
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
### 5. 🛠️ Editor Tools Suite
|
|
177
|
+
|
|
178
|
+
#### ⏱️ 1-2 hours/operation × weekly use = 100+ hours/year
|
|
179
|
+
|
|
180
|
+
20+ tools that automate sprite cropping, animation creation, atlas generation, prefab validation:
|
|
181
|
+
|
|
182
|
+
**Common workflows:**
|
|
183
|
+
|
|
184
|
+
- **Sprite Cropper**: Add or remove transparent pixels from 500 sprites → 1 click (was: 30 minutes in Photoshop)
|
|
185
|
+
- **Animation Creator**: Bulk-create clips from naming patterns (`walk_0001.png`) → 1 minute (was: 20 minutes)
|
|
186
|
+
- **Prefab Checker**: Validate 200 prefabs for missing references → 1 click (was: manual QA)
|
|
187
|
+
- **Atlas Generator**: Create sprite atlases from regex/labels → automated (was: manual setup)
|
|
188
|
+
|
|
189
|
+
[📖 Editor Tools Guide](EDITOR_TOOLS_GUIDE.md)
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## 🎁 Batteries-Included Extensions
|
|
194
|
+
|
|
195
|
+
**Stop Googling "Unity how to..." for the 100th time.**
|
|
196
|
+
|
|
197
|
+
Unity Helpers includes 200+ extension methods that handle the tedious stuff you're tired of writing:
|
|
198
|
+
|
|
199
|
+
### Hierarchy Traversal (Optimized)
|
|
200
|
+
|
|
201
|
+
```csharp
|
|
202
|
+
// Get all ancestors without allocating
|
|
203
|
+
transform.GetAncestors(buffer); // 10x faster than recursive GetComponentInParent loops
|
|
204
|
+
|
|
205
|
+
// Find specific ancestor
|
|
206
|
+
Canvas canvas = transform.GetAncestor<Canvas>(); // Stops at first match
|
|
207
|
+
|
|
208
|
+
// Breadth-first child search with depth control
|
|
209
|
+
transform.GetDescendants(buffer, maxDepth: 2); // Avoid traversing entire tree
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
**Why this matters:** The naive way allocates arrays on every call. These methods use buffering and early-exit for hot paths.
|
|
213
|
+
|
|
214
|
+
### Unity Type Extensions
|
|
215
|
+
|
|
216
|
+
```csharp
|
|
217
|
+
// Color averaging (4 methods: LAB, HSV, Weighted, Dominant)
|
|
218
|
+
Color teamColor = sprite.GetAverageColor(ColorAveragingMethod.LAB); // Perceptually accurate
|
|
219
|
+
|
|
220
|
+
// Collider auto-fitting
|
|
221
|
+
polygonCollider.UpdateShapeToSprite(); // Instant sprite → collider sync
|
|
222
|
+
|
|
223
|
+
// Smooth rotation in one line
|
|
224
|
+
transform.rotation = transform.GetAngleWithSpeed(target, rotationSpeed, Time.deltaTime);
|
|
225
|
+
|
|
226
|
+
// Safe destruction (works in editor AND runtime)
|
|
227
|
+
gameObject.SmartDestroy(); // No more #if UNITY_EDITOR everywhere
|
|
228
|
+
|
|
229
|
+
// Camera world bounds
|
|
230
|
+
Bounds visibleArea = Camera.main.OrthographicBounds(); // Perfect for culling/spawning
|
|
231
|
+
|
|
232
|
+
// Predictive targeting (intercept moving targets)
|
|
233
|
+
if (Ballistics.TryGetInterceptVelocity(shooter, target, projectileSpeed, out Vector3 velocity)) {
|
|
234
|
+
Instantiate(projectile, shooter, Quaternion.LookRotation(velocity));
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Math That Should Be Built-In
|
|
239
|
+
|
|
240
|
+
```csharp
|
|
241
|
+
// Positive modulo (no more negative results!)
|
|
242
|
+
int index = (-1).PositiveMod(array.Length); // 4, not -1
|
|
243
|
+
|
|
244
|
+
// Wrapped add for ring buffers
|
|
245
|
+
index = index.WrappedAdd(2, capacity); // Handles overflow correctly
|
|
246
|
+
|
|
247
|
+
// Approximate equality with tolerance
|
|
248
|
+
if (transform.position.x.Approximately(target.x, 0.01f)) { /* close enough */ }
|
|
249
|
+
|
|
250
|
+
// Polyline simplification (Douglas–Peucker)
|
|
251
|
+
List<Vector2> simplified = LineHelper.Simplify(path, epsilon: 0.5f); // Reduce pathfinding waypoints
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Collection Utilities
|
|
255
|
+
|
|
256
|
+
```csharp
|
|
257
|
+
// Infinite iterator (no extra allocation)
|
|
258
|
+
foreach (var item in itemList.Infinite()) { /* cycles forever */ }
|
|
259
|
+
|
|
260
|
+
// Aggregate bounds from multiple renderers
|
|
261
|
+
Bounds? combined = renderers.Select(r => r.bounds).GetBounds();
|
|
262
|
+
|
|
263
|
+
// String similarity for fuzzy search
|
|
264
|
+
int distance = playerName.LevenshteinDistance("jon"); // "john" = 1, close match!
|
|
265
|
+
|
|
266
|
+
// Case conversions (6 styles: Pascal, Camel, Snake, Kebab, Title, Constant)
|
|
267
|
+
string apiKey = "user_name".ToPascalCase(); // "UserName"
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
**Full list:** [Math & Extensions Guide](MATH_AND_EXTENSIONS.md) | [Reflection Helpers](REFLECTION_HELPERS.md)
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## 💎 Hidden Gems Worth Discovering
|
|
275
|
+
|
|
276
|
+
These powerful utilities solve specific problems that waste hours if you implement them yourself:
|
|
277
|
+
|
|
278
|
+
| Feature | What It Does | Time Saved |
|
|
279
|
+
| -------------------------------------------------------------------- | ----------------------------------------------------- | ---------------------------------- |
|
|
280
|
+
| **[Predictive Targeting](MATH_AND_EXTENSIONS.md#predictive-target)** | Perfect ballistics for turrets/missiles in one call | 2-3 hours per shooting system |
|
|
281
|
+
| **[Coroutine Jitter](MATH_AND_EXTENSIONS.md#unity-extensions)** | Prevents 100 enemies polling on same frame | Eliminates frame spikes |
|
|
282
|
+
| **[IL-Emitted Reflection](REFLECTION_HELPERS.md)** | 100x faster than System.Reflection, IL2CPP safe | Critical for serialization/modding |
|
|
283
|
+
| **[SmartDestroy()](MATH_AND_EXTENSIONS.md#lifecycle-helpers)** | Editor/runtime safe destruction (no scene corruption) | Prevents countless debugging hours |
|
|
284
|
+
| **[Convex/Concave Hulls](HULLS.md)** | Generate territory borders from point clouds | 4-6 hours per hull algorithm |
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Why Teams Choose Unity Helpers
|
|
289
|
+
|
|
290
|
+
**The Reality:** You're spending 30-40% of your time writing the same GetComponent boilerplate, spatial query loops, and save/load plumbing over and over. Unity Helpers gives you that time back.
|
|
291
|
+
|
|
292
|
+
**Built for Real Projects:**
|
|
293
|
+
|
|
294
|
+
- ✅ **Production-tested** in shipped commercial games
|
|
295
|
+
- ✅ **4,000+ automated tests** catch edge cases before you hit them
|
|
296
|
+
- ✅ **Zero dependencies** - drop it in any project
|
|
297
|
+
- ✅ **IL2CPP/WebGL ready** with optimized SINGLE_THREADED paths
|
|
298
|
+
- ✅ **MIT Licensed** - use freely in commercial projects
|
|
299
|
+
|
|
300
|
+
**Who This Is For:**
|
|
301
|
+
|
|
302
|
+
- **Indie devs** who need professional tools without enterprise overhead
|
|
303
|
+
- **Teams** who value performance and want their junior devs to use battle-tested code
|
|
304
|
+
- **Senior engineers** who are tired of re-implementing the same utilities every project
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## Installation
|
|
309
|
+
|
|
310
|
+
### As Unity Package (Recommended)
|
|
311
|
+
|
|
312
|
+
1. Open Unity Package Manager
|
|
313
|
+
2. _(Optional)_ Enable **Pre-release packages** for cutting-edge builds
|
|
314
|
+
3. Click the **+** dropdown → **Add package from git URL...**
|
|
315
|
+
4. Enter: `https://github.com/wallstop/unity-helpers.git`
|
|
316
|
+
|
|
317
|
+
**OR** add to your `manifest.json`:
|
|
318
|
+
|
|
319
|
+
```json
|
|
320
|
+
{
|
|
321
|
+
"dependencies": {
|
|
322
|
+
"com.wallstop-studios.unity-helpers": "https://github.com/wallstop/unity-helpers.git"
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### From NPM Registry
|
|
328
|
+
|
|
329
|
+
1. Open Unity Package Manager
|
|
330
|
+
2. _(Optional)_ Enable **Pre-release packages**
|
|
331
|
+
3. Open **Advanced Package Settings** (gear icon)
|
|
332
|
+
4. Add a new **Scoped Registry**:
|
|
333
|
+
- **Name**: `NPM`
|
|
334
|
+
- **URL**: `https://registry.npmjs.org`
|
|
335
|
+
- **Scope(s)**: `com.wallstop-studios.unity-helpers`
|
|
336
|
+
5. Search for and install `com.wallstop-studios.unity-helpers`
|
|
337
|
+
|
|
338
|
+
### From Source
|
|
339
|
+
|
|
340
|
+
1. [Download the latest release](https://github.com/wallstop/unity-helpers/releases) or clone this repository
|
|
341
|
+
2. Copy the contents to your project's `Assets` folder
|
|
342
|
+
3. Unity will automatically import the package
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## Compatibility
|
|
347
|
+
|
|
348
|
+
| Unity Version | Built-In | URP | HDRP |
|
|
349
|
+
| ------------- | -------------------- | -------------------- | -------------------- |
|
|
350
|
+
| 2021 | Likely, but untested | Likely, but untested | Likely, but untested |
|
|
351
|
+
| 2022 | ✅ Compatible | ✅ Compatible | ✅ Compatible |
|
|
352
|
+
| 2023 | ✅ Compatible | ✅ Compatible | ✅ Compatible |
|
|
353
|
+
| Unity 6 | ✅ Compatible | ✅ Compatible | ✅ Compatible |
|
|
354
|
+
|
|
355
|
+
### Platform Support
|
|
356
|
+
|
|
357
|
+
Unity Helpers is **fully multiplatform compatible** including:
|
|
358
|
+
|
|
359
|
+
- ✅ **WebGL** - Full support with optimized SINGLE_THREADED hot paths
|
|
360
|
+
- ✅ **IL2CPP** - Tested and compatible with ahead-of-time compilation
|
|
361
|
+
- ✅ **Mobile** (iOS, Android) - Production-ready with IL2CPP
|
|
362
|
+
- ✅ **Desktop** (Windows, macOS, Linux) - Full threading support
|
|
363
|
+
- ✅ **Consoles** - IL2CPP compatible
|
|
364
|
+
|
|
365
|
+
**Requirements:**
|
|
366
|
+
|
|
367
|
+
- **.NET Standard 2.1** - Required for core library features
|
|
368
|
+
|
|
369
|
+
### WebGL and Single-Threaded Optimization
|
|
370
|
+
|
|
371
|
+
Unity Helpers includes a `SINGLE_THREADED` scripting define symbol for WebGL and other single-threaded environments. When enabled, the library automatically uses optimized code paths that eliminate threading overhead:
|
|
372
|
+
|
|
373
|
+
**Optimized systems with SINGLE_THREADED:**
|
|
374
|
+
|
|
375
|
+
- **Buffers & Pooling** - Uses `Stack<T>` and `Dictionary<T>` instead of `ConcurrentBag<T>` and `ConcurrentDictionary<T>`
|
|
376
|
+
- **Random Number Generation** - Static instances instead of `ThreadLocal<T>`
|
|
377
|
+
- **Reflection Caches** - Non-concurrent dictionaries for faster lookups
|
|
378
|
+
- **Thread Pools** - SingleThreadedThreadPool disabled (not needed on WebGL)
|
|
379
|
+
|
|
380
|
+
**How to enable:**
|
|
381
|
+
|
|
382
|
+
Unity automatically defines `UNITY_WEBGL` for WebGL builds. To enable SINGLE_THREADED optimization:
|
|
383
|
+
|
|
384
|
+
1. Go to **Project Settings > Player > Other Settings > Scripting Define Symbols**
|
|
385
|
+
2. Add `SINGLE_THREADED` for WebGL platform
|
|
386
|
+
3. Or use in your `csc.rsp` file: `-define:SINGLE_THREADED`
|
|
387
|
+
|
|
388
|
+
**Performance impact:** 10-20% faster hot path operations on single-threaded platforms by avoiding unnecessary synchronization overhead.
|
|
389
|
+
|
|
390
|
+
### IL2CPP and Code Stripping Considerations
|
|
391
|
+
|
|
392
|
+
⚠️ **Important for IL2CPP builds (WebGL, Mobile, Consoles):**
|
|
393
|
+
|
|
394
|
+
Some features in Unity Helpers use reflection internally (particularly **Protobuf serialization** and **ReflectionHelpers**). IL2CPP's managed code stripping may remove types/members that are only accessed via reflection, causing runtime errors.
|
|
395
|
+
|
|
396
|
+
**Symptoms of stripping issues:**
|
|
397
|
+
|
|
398
|
+
- `NullReferenceException` or `TypeLoadException` during deserialization
|
|
399
|
+
- Missing fields after Protobuf deserialization
|
|
400
|
+
- Reflection helpers failing to find types at runtime
|
|
401
|
+
|
|
402
|
+
#### Solution: Use link.xml to preserve required types
|
|
403
|
+
|
|
404
|
+
Create a `link.xml` file in your `Assets` folder to prevent stripping:
|
|
405
|
+
|
|
406
|
+
```xml
|
|
407
|
+
<linker>
|
|
408
|
+
<!-- Preserve your serialized types -->
|
|
409
|
+
<assembly fullname="Assembly-CSharp">
|
|
410
|
+
<type fullname="MyNamespace.PlayerSave" preserve="all"/>
|
|
411
|
+
<type fullname="MyNamespace.InventoryData" preserve="all"/>
|
|
412
|
+
<!-- Add all Protobuf-serialized types here -->
|
|
413
|
+
</assembly>
|
|
414
|
+
|
|
415
|
+
<!-- Preserve Unity Helpers if needed -->
|
|
416
|
+
<assembly fullname="WallstopStudios.UnityHelpers.Runtime" preserve="all"/>
|
|
417
|
+
</linker>
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
**Best practices:**
|
|
421
|
+
|
|
422
|
+
- ✅ **Always test IL2CPP builds** - Development builds don't use stripping, so bugs only appear in release builds
|
|
423
|
+
- ✅ **Test on target platform** - WebGL stripping behaves differently than iOS/Android
|
|
424
|
+
- ✅ **Use link.xml for all Protobuf types** - Any type with `[ProtoContract]` should be preserved
|
|
425
|
+
- ✅ **Verify after every schema change** - Adding new serialized types requires updating link.xml
|
|
426
|
+
- ✅ **Check logs for stripping warnings** - Unity logs which types are stripped during build
|
|
427
|
+
|
|
428
|
+
**When you don't need link.xml:**
|
|
429
|
+
|
|
430
|
+
- JSON serialization (uses source-generated converters, not reflection)
|
|
431
|
+
- Spatial trees and data structures (no reflection used)
|
|
432
|
+
- Most helper methods (compiled ahead-of-time)
|
|
433
|
+
|
|
434
|
+
**Related documentation:**
|
|
435
|
+
|
|
436
|
+
- [Unity Manual: Managed Code Stripping](https://docs.unity3d.com/Manual/ManagedCodeStripping.html)
|
|
437
|
+
- [Protobuf-net and IL2CPP](https://github.com/protobuf-net/protobuf-net#il2cpp)
|
|
438
|
+
- [Serialization Guide: IL2CPP Warning](SERIALIZATION.md#️-il2cpp-and-code-stripping-warning)
|
|
439
|
+
- [Reflection Helpers: IL2CPP Warning](REFLECTION_HELPERS.md#️-il2cpp-code-stripping-considerations)
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
## Quick Start Guide
|
|
444
|
+
|
|
445
|
+
> 💡 **First time?** Skip to section #1 ([Relational Components](#1--auto-wire-components)) - it has the biggest immediate impact.
|
|
446
|
+
|
|
447
|
+
Already read the [Top 5 Time-Savers](#-top-5-time-savers)? Jump directly to the [Core Features](#core-features) reference below, or check out the comprehensive [Getting Started Guide](GETTING_STARTED.md).
|
|
448
|
+
|
|
449
|
+
---
|
|
450
|
+
|
|
451
|
+
## Core Features
|
|
452
|
+
|
|
453
|
+
### Random Number Generators
|
|
454
|
+
|
|
455
|
+
Unity Helpers includes **12 high-quality random number generators**, all implementing a rich `IRandom` interface:
|
|
456
|
+
|
|
457
|
+
#### Available Generators
|
|
458
|
+
|
|
459
|
+
| Generator | Speed | Quality | Use Case |
|
|
460
|
+
| ------------------------------- | --------- | --------- | ---------------------------------------- |
|
|
461
|
+
| **IllusionFlow** ⭐ | Fast | Good | Default choice (via PRNG.Instance) |
|
|
462
|
+
| **PcgRandom** | Very Fast | Excellent | Deterministic gameplay; explicit seeding |
|
|
463
|
+
| **RomuDuo** | Fastest | Good | Maximum performance needed |
|
|
464
|
+
| **LinearCongruentialGenerator** | Fastest | Fair | Simple, fast generation |
|
|
465
|
+
| **XorShiftRandom** | Very Fast | Good | General purpose |
|
|
466
|
+
| **XoroShiroRandom** | Very Fast | Good | General purpose |
|
|
467
|
+
| **SplitMix64** | Very Fast | Good | Initialization, hashing |
|
|
468
|
+
| **SquirrelRandom** | Moderate | Good | Hash-based generation |
|
|
469
|
+
| **WyRandom** | Moderate | Good | Hashing applications |
|
|
470
|
+
| **DotNetRandom** | Moderate | Good | .NET compatibility |
|
|
471
|
+
| **SystemRandom** | Slow | Good | Backward compatibility |
|
|
472
|
+
| **UnityRandom** | Very Slow | Good | Unity compatibility |
|
|
473
|
+
|
|
474
|
+
⭐ **Recommended**: Use `PRNG.Instance` (currently IllusionFlow)
|
|
475
|
+
|
|
476
|
+
#### Rich API
|
|
477
|
+
|
|
478
|
+
All generators implement `IRandom` with extensive functionality:
|
|
479
|
+
|
|
480
|
+
```csharp
|
|
481
|
+
IRandom random = PRNG.Instance;
|
|
482
|
+
|
|
483
|
+
// Basic types
|
|
484
|
+
int i = random.Next(); // int in [0, int.MaxValue]
|
|
485
|
+
int range = random.Next(10, 20); // int in [10, 20)
|
|
486
|
+
uint ui = random.NextUint(); // uint in [0, uint.MaxValue]
|
|
487
|
+
float f = random.NextFloat(); // float in [0.0f, 1.0f]
|
|
488
|
+
double d = random.NextDouble(); // double in [0.0d, 1.0d]
|
|
489
|
+
bool b = random.NextBool(); // true or false
|
|
490
|
+
|
|
491
|
+
// Unity types
|
|
492
|
+
Vector2 v2 = random.NextVector2(); // Random 2D vector
|
|
493
|
+
Vector3 v3 = random.NextVector3(); // Random 3D vector
|
|
494
|
+
Color color = random.NextColor(); // Random color
|
|
495
|
+
Quaternion rot = random.NextRotation(); // Random rotation
|
|
496
|
+
|
|
497
|
+
// Distributions
|
|
498
|
+
float gaussian = random.NextGaussian(mean: 0f, stdDev: 1f);
|
|
499
|
+
|
|
500
|
+
// Collections
|
|
501
|
+
T item = random.NextOf(collection); // Random element
|
|
502
|
+
T[] shuffled = random.Shuffle(array); // Fisher-Yates shuffle
|
|
503
|
+
int weightedIndex = random.NextWeightedIndex(weights);
|
|
504
|
+
|
|
505
|
+
// Special
|
|
506
|
+
Guid uuid = random.NextGuid(); // UUIDv4
|
|
507
|
+
T enumValue = random.NextEnum<T>(); // Random enum value
|
|
508
|
+
float[,] noise = random.NextNoiseMap(width, height); // Perlin noise
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
#### Deterministic Gameplay
|
|
512
|
+
|
|
513
|
+
All generators are **seedable** for replay systems:
|
|
514
|
+
|
|
515
|
+
```csharp
|
|
516
|
+
// Create seeded generator for deterministic behavior
|
|
517
|
+
IRandom seededRandom = new IllusionFlow(seed: 12345);
|
|
518
|
+
|
|
519
|
+
// Same seed = same sequence
|
|
520
|
+
IRandom replay = new IllusionFlow(seed: 12345);
|
|
521
|
+
// Both will generate identical values
|
|
522
|
+
```
|
|
523
|
+
|
|
524
|
+
**Threading:**
|
|
525
|
+
|
|
526
|
+
- Do not share a single RNG instance across threads.
|
|
527
|
+
- Use `PRNG.Instance` for a thread-local default, or use each generator's `TypeName.Instance` (e.g., `IllusionFlow.Instance`, `PcgRandom.Instance`).
|
|
528
|
+
- Alternatively, create one separate instance per thread.
|
|
529
|
+
|
|
530
|
+
[📊 Performance Comparison](RANDOM_PERFORMANCE.md)
|
|
531
|
+
|
|
532
|
+
---
|
|
533
|
+
|
|
534
|
+
### Spatial Trees
|
|
535
|
+
|
|
536
|
+
Efficient spatial data structures for 2D and 3D games.
|
|
537
|
+
|
|
538
|
+
#### 2D Spatial Trees
|
|
539
|
+
|
|
540
|
+
- **QuadTree2D** - Best general-purpose choice
|
|
541
|
+
- **KDTree2D** - Fast nearest-neighbor queries
|
|
542
|
+
- **RTree2D** - Optimized for bounding boxes
|
|
543
|
+
|
|
544
|
+
```csharp
|
|
545
|
+
using WallstopStudios.UnityHelpers.Core.DataStructure;
|
|
546
|
+
|
|
547
|
+
// Create from collection
|
|
548
|
+
GameObject[] objects = FindObjectsOfType<GameObject>();
|
|
549
|
+
QuadTree2D<GameObject> tree = new(objects, go => go.transform.position);
|
|
550
|
+
|
|
551
|
+
// Query by radius
|
|
552
|
+
List<GameObject> nearby = new();
|
|
553
|
+
tree.GetElementsInRange(playerPos, radius: 10f, nearby);
|
|
554
|
+
|
|
555
|
+
// Query by bounds
|
|
556
|
+
Bounds searchArea = new(center, size);
|
|
557
|
+
tree.GetElementsInBounds(searchArea, nearby);
|
|
558
|
+
|
|
559
|
+
// Find nearest neighbors (approximate, but fast)
|
|
560
|
+
tree.GetApproximateNearestNeighbors(playerPos, count: 5, nearby);
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
#### 3D Spatial Trees
|
|
564
|
+
|
|
565
|
+
Note: KdTree3D, OctTree3D, and RTree3D are under active development. SpatialHash3D is stable and production‑ready.
|
|
566
|
+
|
|
567
|
+
- **OctTree3D** - Best general-purpose choice for 3D
|
|
568
|
+
- **KDTree3D** - Fast 3D nearest-neighbor queries
|
|
569
|
+
- **RTree3D** - Optimized for 3D bounding volumes
|
|
570
|
+
- **SpatialHash3D** - Efficient for uniformly distributed moving objects (stable)
|
|
571
|
+
|
|
572
|
+
```csharp
|
|
573
|
+
// Same API as 2D, but with Vector3
|
|
574
|
+
Vector3[] positions = GetAllPositions();
|
|
575
|
+
OctTree3D<Vector3> tree = new(positions, p => p);
|
|
576
|
+
|
|
577
|
+
List<Vector3> results = new();
|
|
578
|
+
tree.GetElementsInRange(center, radius: 50f, results);
|
|
579
|
+
```
|
|
580
|
+
|
|
581
|
+
#### When to Use Spatial Trees
|
|
582
|
+
|
|
583
|
+
✅ **Good for:**
|
|
584
|
+
|
|
585
|
+
- Many objects (100+)
|
|
586
|
+
- Frequent spatial queries
|
|
587
|
+
- Static or slowly changing data
|
|
588
|
+
- AI awareness systems
|
|
589
|
+
- Visibility culling
|
|
590
|
+
- Collision detection optimization
|
|
591
|
+
|
|
592
|
+
❌ **Not ideal for:**
|
|
593
|
+
|
|
594
|
+
- Few objects (<50)
|
|
595
|
+
- Constantly moving objects
|
|
596
|
+
- Single queries
|
|
597
|
+
- Already using Unity's physics system
|
|
598
|
+
|
|
599
|
+
[📊 2D Benchmarks](SPATIAL_TREE_2D_PERFORMANCE.md) | [📊 3D Benchmarks](SPATIAL_TREE_3D_PERFORMANCE.md)
|
|
600
|
+
|
|
601
|
+
For behavior details and edge cases, see: [Spatial Tree Semantics](SPATIAL_TREE_SEMANTICS.md)
|
|
602
|
+
|
|
603
|
+
---
|
|
604
|
+
|
|
605
|
+
### Relational Components
|
|
606
|
+
|
|
607
|
+
Stop writing GetComponent boilerplate. Auto-wire components using attributes.
|
|
608
|
+
|
|
609
|
+
**Key attributes:**
|
|
610
|
+
|
|
611
|
+
- `[SiblingComponent]` - Find components on same GameObject
|
|
612
|
+
- `[ParentComponent]` - Find components in parent hierarchy
|
|
613
|
+
- `[ChildComponent]` - Find components in children
|
|
614
|
+
- `[ValidateAssignment]` - Validate at edit time, show errors in inspector
|
|
615
|
+
- `[NotNull]` - Must be assigned in inspector
|
|
616
|
+
- `[DxReadOnly]` - Read-only display in inspector
|
|
617
|
+
- `[WShowIf]` - Conditional display based on field values
|
|
618
|
+
|
|
619
|
+
**Quick example:**
|
|
620
|
+
|
|
621
|
+
```csharp
|
|
622
|
+
using WallstopStudios.UnityHelpers.Core.Attributes;
|
|
623
|
+
|
|
624
|
+
public class Enemy : MonoBehaviour
|
|
625
|
+
{
|
|
626
|
+
// Find on same GameObject
|
|
627
|
+
[SiblingComponent]
|
|
628
|
+
private Animator animator;
|
|
629
|
+
|
|
630
|
+
// Find in parent
|
|
631
|
+
[ParentComponent]
|
|
632
|
+
private EnemySpawner spawner;
|
|
633
|
+
|
|
634
|
+
// Find in children
|
|
635
|
+
[ChildComponent]
|
|
636
|
+
private List<Weapon> weapons;
|
|
637
|
+
|
|
638
|
+
// Optional component (no error if missing)
|
|
639
|
+
[SiblingComponent(Optional = true)]
|
|
640
|
+
private AudioSource audioSource;
|
|
641
|
+
|
|
642
|
+
// Only search direct children/parents
|
|
643
|
+
[ParentComponent(OnlyAncestors = true)]
|
|
644
|
+
private Transform[] parentHierarchy;
|
|
645
|
+
|
|
646
|
+
// Include inactive components
|
|
647
|
+
[ChildComponent(IncludeInactive = true)]
|
|
648
|
+
private ParticleSystem[] effects;
|
|
649
|
+
|
|
650
|
+
private void Awake()
|
|
651
|
+
{
|
|
652
|
+
this.AssignRelationalComponents();
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
```
|
|
656
|
+
|
|
657
|
+
See the in-depth guide: [Relational Components](RELATIONAL_COMPONENTS.md).
|
|
658
|
+
|
|
659
|
+
---
|
|
660
|
+
|
|
661
|
+
### Effects, Attributes, and Tags
|
|
662
|
+
|
|
663
|
+
Create data-driven gameplay effects that modify stats, apply tags, and drive cosmetics.
|
|
664
|
+
|
|
665
|
+
**Key pieces:**
|
|
666
|
+
|
|
667
|
+
- `AttributeEffect` — ScriptableObject that bundles stat changes, tags, cosmetics, and duration.
|
|
668
|
+
- `EffectHandle` — Unique ID for one application instance; remove/refresh specific stacks.
|
|
669
|
+
- `AttributesComponent` — Base class for components that expose modifiable `Attribute` fields.
|
|
670
|
+
- `TagHandler` — Counts and queries string tags for gating gameplay (e.g., "Stunned").
|
|
671
|
+
- `CosmeticEffectData` — Prefab-like container of behaviors shown while an effect is active.
|
|
672
|
+
|
|
673
|
+
**Quick example:**
|
|
674
|
+
|
|
675
|
+
```csharp
|
|
676
|
+
using WallstopStudios.UnityHelpers.Tags;
|
|
677
|
+
|
|
678
|
+
// 1) Define stats on a component
|
|
679
|
+
public class CharacterStats : AttributesComponent
|
|
680
|
+
{
|
|
681
|
+
public Attribute Health = 100f;
|
|
682
|
+
public Attribute Speed = 5f;
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
// 2) Author an AttributeEffect (ScriptableObject) in the editor
|
|
686
|
+
// - modifications: [ { attribute: "Speed", action: Multiplication, value: 1.5f } ]
|
|
687
|
+
// - durationType: Duration, duration: 5
|
|
688
|
+
// - effectTags: [ "Haste" ]
|
|
689
|
+
// - cosmeticEffects: [ a prefab with CosmeticEffectData + Particle/Audio components ]
|
|
690
|
+
|
|
691
|
+
// 3) Apply and later remove
|
|
692
|
+
GameObject player = ...;
|
|
693
|
+
AttributeEffect haste = ...; // ScriptableObject reference
|
|
694
|
+
EffectHandle? handle = player.ApplyEffect(haste);
|
|
695
|
+
if (handle.HasValue)
|
|
696
|
+
{
|
|
697
|
+
// Remove early if needed
|
|
698
|
+
player.RemoveEffect(handle.Value);
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
// Query tags anywhere
|
|
702
|
+
if (player.HasTag("Stunned")) { /* disable input */ }
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
**Details at a glance:**
|
|
706
|
+
|
|
707
|
+
- `ModifierDurationType.Instant` — applies permanently; returns null handle.
|
|
708
|
+
- `ModifierDurationType.Duration` — temporary; expires automatically; reapply can reset if enabled.
|
|
709
|
+
- `ModifierDurationType.Infinite` — persists until `RemoveEffect(handle)` is called.
|
|
710
|
+
- `AttributeModification` order: Addition → Multiplication → Override.
|
|
711
|
+
- `CosmeticEffectData.RequiresInstancing` — instance per application or reuse shared presenters.
|
|
712
|
+
|
|
713
|
+
Further reading: see the full guide [Effects System](EFFECTS_SYSTEM.md).
|
|
714
|
+
|
|
715
|
+
---
|
|
716
|
+
|
|
717
|
+
### Serialization
|
|
718
|
+
|
|
719
|
+
Fast, compact serialization for save systems, config, and networking.
|
|
720
|
+
|
|
721
|
+
This package provides three serialization technologies:
|
|
722
|
+
|
|
723
|
+
- `Json` — Uses System.Text.Json with built‑in converters for Unity types.
|
|
724
|
+
- `Protobuf` — Uses protobuf-net for compact, fast, schema‑evolvable binary.
|
|
725
|
+
- `SystemBinary` — Uses .NET BinaryFormatter for legacy/ephemeral data only.
|
|
726
|
+
|
|
727
|
+
All are exposed via `WallstopStudios.UnityHelpers.Core.Serialization.Serializer`.
|
|
728
|
+
|
|
729
|
+
#### JSON Profiles
|
|
730
|
+
|
|
731
|
+
- **Normal** — robust defaults (case-insensitive, includes fields, comments/trailing commas allowed)
|
|
732
|
+
- **Pretty** — human-friendly, indented
|
|
733
|
+
- **Fast** — strict, minimal with Unity converters (case-sensitive, strict numbers, no comments/trailing commas, IncludeFields=false)
|
|
734
|
+
- **FastPOCO** — strict, minimal, no Unity converters; best for pure POCO graphs
|
|
735
|
+
|
|
736
|
+
#### When To Use What
|
|
737
|
+
|
|
738
|
+
- Use **Json** for:
|
|
739
|
+
- Player or tool settings, human‑readable saves, serverless workflows.
|
|
740
|
+
- Interop with tooling, debugging, or versioning in Git.
|
|
741
|
+
- Use **Protobuf** for:
|
|
742
|
+
- Network payloads, large save files, bandwidth/storage‑sensitive data.
|
|
743
|
+
- Situations where you expect schema evolution across versions.
|
|
744
|
+
- Use **SystemBinary** only for:
|
|
745
|
+
- Transient caches in trusted environments where data and code version match.
|
|
746
|
+
- Never for untrusted data or long‑term persistence.
|
|
747
|
+
|
|
748
|
+
#### JSON Example
|
|
749
|
+
|
|
750
|
+
```csharp
|
|
751
|
+
using System.Collections.Generic;
|
|
752
|
+
using UnityEngine;
|
|
753
|
+
using WallstopStudios.UnityHelpers.Core.Serialization;
|
|
754
|
+
|
|
755
|
+
public class SaveData
|
|
756
|
+
{
|
|
757
|
+
public Vector3 position;
|
|
758
|
+
public Color playerColor;
|
|
759
|
+
public List<GameObject> inventory;
|
|
760
|
+
}
|
|
761
|
+
|
|
762
|
+
var data = new SaveData
|
|
763
|
+
{
|
|
764
|
+
position = new Vector3(1, 2, 3),
|
|
765
|
+
playerColor = Color.cyan,
|
|
766
|
+
inventory = new List<GameObject>()
|
|
767
|
+
};
|
|
768
|
+
|
|
769
|
+
// Serialize to UTF‑8 JSON bytes (Unity types supported via built‑in converters)
|
|
770
|
+
byte[] jsonBytes = Serializer.JsonSerialize(data);
|
|
771
|
+
|
|
772
|
+
// Deserialize from string
|
|
773
|
+
string jsonText = Serializer.JsonStringify(data, pretty: true);
|
|
774
|
+
SaveData fromText = Serializer.JsonDeserialize<SaveData>(jsonText);
|
|
775
|
+
|
|
776
|
+
// File helpers
|
|
777
|
+
Serializer.WriteToJsonFile(data, path: "save.json", pretty: true);
|
|
778
|
+
SaveData fromFile = Serializer.ReadFromJsonFile<SaveData>("save.json");
|
|
779
|
+
|
|
780
|
+
// Generic entry points (choose format at runtime)
|
|
781
|
+
byte[] bytes = Serializer.Serialize(data, SerializationType.Json);
|
|
782
|
+
SaveData loaded = Serializer.Deserialize<SaveData>(bytes, SerializationType.Json);
|
|
783
|
+
```
|
|
784
|
+
|
|
785
|
+
#### Protobuf Example
|
|
786
|
+
|
|
787
|
+
```csharp
|
|
788
|
+
using ProtoBuf; // protobuf-net
|
|
789
|
+
using UnityEngine;
|
|
790
|
+
using WallstopStudios.UnityHelpers.Core.Serialization;
|
|
791
|
+
|
|
792
|
+
[ProtoContract]
|
|
793
|
+
public class NetworkMessage
|
|
794
|
+
{
|
|
795
|
+
[ProtoMember(1)] public int playerId;
|
|
796
|
+
[ProtoMember(2)] public Vector3 position; // Vector3 works in Protobuf via built-in surrogates
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
var message = new NetworkMessage { playerId = 7, position = new Vector3(5, 0, -2) };
|
|
800
|
+
|
|
801
|
+
// Protobuf bytes (small + fast)
|
|
802
|
+
byte[] bytes = Serializer.ProtoSerialize(message);
|
|
803
|
+
NetworkMessage decoded = Serializer.ProtoDeserialize<NetworkMessage>(bytes);
|
|
804
|
+
|
|
805
|
+
// Generic entry points
|
|
806
|
+
byte[] bytes2 = Serializer.Serialize(message, SerializationType.Protobuf);
|
|
807
|
+
NetworkMessage decoded2 = Serializer.Deserialize<NetworkMessage>(bytes2, SerializationType.Protobuf);
|
|
808
|
+
|
|
809
|
+
// Buffer reuse (reduce GC for hot paths)
|
|
810
|
+
byte[] buffer = null;
|
|
811
|
+
int len = Serializer.Serialize(message, SerializationType.Protobuf, ref buffer);
|
|
812
|
+
NetworkMessage again = Serializer.Deserialize<NetworkMessage>(buffer.AsSpan(0, len).ToArray(), SerializationType.Protobuf);
|
|
813
|
+
```
|
|
814
|
+
|
|
815
|
+
**Notes:**
|
|
816
|
+
|
|
817
|
+
- Protobuf‑net requires stable field numbers. Annotate with `[ProtoMember(n)]` and never reuse or renumber.
|
|
818
|
+
- Unity types supported via surrogates: Vector2/3, Vector2Int/3Int, Quaternion, Color/Color32, Rect/RectInt, Bounds/BoundsInt, Resolution.
|
|
819
|
+
|
|
820
|
+
**Features:**
|
|
821
|
+
|
|
822
|
+
- Custom converters for Unity types (Vector2/3/4, Color, GameObject, Matrix4x4, Type)
|
|
823
|
+
- Protobuf (protobuf‑net) support for compact binary
|
|
824
|
+
- LZMA compression utilities (see `Runtime/Utils/LZMA.cs`)
|
|
825
|
+
- Type‑safe serialization and pooled buffers/writers to reduce GC
|
|
826
|
+
|
|
827
|
+
[Full guide: Serialization](SERIALIZATION.md)
|
|
828
|
+
|
|
829
|
+
---
|
|
830
|
+
|
|
831
|
+
### Data Structures
|
|
832
|
+
|
|
833
|
+
Additional high-performance data structures:
|
|
834
|
+
|
|
835
|
+
| Structure | Use Case |
|
|
836
|
+
| -------------------- | ------------------------------ |
|
|
837
|
+
| **CyclicBuffer<T>** | Ring buffer, sliding windows |
|
|
838
|
+
| **BitSet** | Compact boolean storage |
|
|
839
|
+
| **ImmutableBitSet** | Read-only bit flags |
|
|
840
|
+
| **Heap<T>** | Priority queue operations |
|
|
841
|
+
| **PriorityQueue<T>** | Event scheduling |
|
|
842
|
+
| **Deque<T>** | Double-ended queue |
|
|
843
|
+
| **DisjointSet** | Union-find operations |
|
|
844
|
+
| **Trie** | String prefix trees |
|
|
845
|
+
| **SparseSet** | Fast add/remove with iteration |
|
|
846
|
+
| **TimedCache<T>** | Auto-expiring cache |
|
|
847
|
+
|
|
848
|
+
```csharp
|
|
849
|
+
// Cyclic buffer for damage history
|
|
850
|
+
CyclicBuffer<float> damageHistory = new(capacity: 10);
|
|
851
|
+
damageHistory.Add(25f);
|
|
852
|
+
damageHistory.Add(30f);
|
|
853
|
+
float avgDamage = damageHistory.Average();
|
|
854
|
+
|
|
855
|
+
// Priority queue for event scheduling
|
|
856
|
+
PriorityQueue<GameEvent> eventQueue = new();
|
|
857
|
+
eventQueue.Enqueue(spawnEvent, priority: 1);
|
|
858
|
+
eventQueue.Enqueue(bossEvent, priority: 10);
|
|
859
|
+
GameEvent next = eventQueue.Dequeue(); // Highest priority
|
|
860
|
+
|
|
861
|
+
// Trie for autocomplete
|
|
862
|
+
Trie commandTrie = new();
|
|
863
|
+
commandTrie.Insert("teleport");
|
|
864
|
+
commandTrie.Insert("tell");
|
|
865
|
+
commandTrie.Insert("terrain");
|
|
866
|
+
List<string> matches = commandTrie.GetWordsWithPrefix("tel");
|
|
867
|
+
// Returns: ["teleport", "tell"]
|
|
868
|
+
```
|
|
869
|
+
|
|
870
|
+
[Full guide: Data Structures](DATA_STRUCTURES.md)
|
|
871
|
+
|
|
872
|
+
---
|
|
873
|
+
|
|
874
|
+
### Core Math & Extensions
|
|
875
|
+
|
|
876
|
+
Numeric helpers, geometry primitives, Unity extensions, colors, collections, strings, directions.
|
|
877
|
+
|
|
878
|
+
See the guide: [Core Math & Extensions](MATH_AND_EXTENSIONS.md).
|
|
879
|
+
|
|
880
|
+
#### At a Glance
|
|
881
|
+
|
|
882
|
+
- `PositiveMod`, `WrappedAdd` — Safe cyclic arithmetic for indices/angles.
|
|
883
|
+
- `LineHelper.Simplify` — Reduce polyline vertices with Douglas–Peucker.
|
|
884
|
+
- `Line2D.Intersects` — Robust 2D segment intersection and closest-point helpers.
|
|
885
|
+
- `RectTransform.GetWorldRect` — Axis-aligned world bounds for rotated UI.
|
|
886
|
+
- `Camera.OrthographicBounds` — Compute visible world bounds for ortho cameras.
|
|
887
|
+
- `Color.GetAverageColor` — LAB/HSV/Weighted/Dominant color averaging.
|
|
888
|
+
- `IEnumerable.Infinite` — Cycle sequences without extra allocations.
|
|
889
|
+
- `StringExtensions.LevenshteinDistance` — Edit distance for fuzzy matching.
|
|
890
|
+
|
|
891
|
+
---
|
|
892
|
+
|
|
893
|
+
<a id="singleton-utilities-odin-compatible"></a>
|
|
894
|
+
|
|
895
|
+
### Singleton Utilities (ODIN‑compatible)
|
|
896
|
+
|
|
897
|
+
- `RuntimeSingleton<T>` — Global component singleton with optional cross‑scene persistence.
|
|
898
|
+
- `ScriptableObjectSingleton<T>` — Global settings/data singleton loaded from `Resources/`, auto‑created by the editor tool.
|
|
899
|
+
|
|
900
|
+
See the guide: [Singleton Utilities](SINGLETONS.md) and the tool: [ScriptableObject Singleton Creator](EDITOR_TOOLS_GUIDE.md#scriptableobject-singleton-creator).
|
|
901
|
+
|
|
902
|
+
---
|
|
903
|
+
|
|
904
|
+
### Editor Tools
|
|
905
|
+
|
|
906
|
+
Unity Helpers includes 20+ editor tools to streamline your workflow:
|
|
907
|
+
|
|
908
|
+
- **Sprite Tools**: Cropper, Atlas Generator, Animation Editor, Pivot Adjuster
|
|
909
|
+
- **Texture Tools**: Blur, Resize, Settings Applier, Fit Texture Size
|
|
910
|
+
- **Animation Tools**: Event Editor, Creator, Copier, Sheet Animation Creator
|
|
911
|
+
- **Validation**: Prefab Checker with comprehensive validation rules
|
|
912
|
+
- **Automation**: ScriptableObject Singleton Creator, Attribute Cache Generator
|
|
913
|
+
|
|
914
|
+
[📖 Complete Editor Tools Documentation](EDITOR_TOOLS_GUIDE.md)
|
|
915
|
+
|
|
916
|
+
**Quick Access:**
|
|
917
|
+
|
|
918
|
+
- Menu: `Tools > Wallstop Studios > Unity Helpers`
|
|
919
|
+
- Create Assets: `Assets > Create > Wallstop Studios > Unity Helpers`
|
|
920
|
+
|
|
921
|
+
---
|
|
922
|
+
|
|
923
|
+
## Buffering Pattern
|
|
924
|
+
|
|
925
|
+
### Professional-Grade Object Pooling
|
|
926
|
+
|
|
927
|
+
Zero-allocation queries with automatic cleanup and thread-safe pooling.
|
|
928
|
+
|
|
929
|
+
```csharp
|
|
930
|
+
using WallstopStudios.UnityHelpers.Utils;
|
|
931
|
+
using WallstopStudios.UnityHelpers.Core.DataStructure;
|
|
932
|
+
|
|
933
|
+
// Example: Use pooled buffer for spatial query
|
|
934
|
+
void FindNearbyEnemies(QuadTree2D<Enemy> tree, Vector2 position)
|
|
935
|
+
{
|
|
936
|
+
// Get pooled list - automatically returned when scope exits
|
|
937
|
+
using var lease = Buffers<Enemy>.List.Get(out List<Enemy> buffer);
|
|
938
|
+
|
|
939
|
+
// Use it with spatial query - combines zero-alloc query + pooled buffer!
|
|
940
|
+
tree.GetElementsInRange(position, 10f, buffer);
|
|
941
|
+
|
|
942
|
+
foreach (Enemy enemy in buffer)
|
|
943
|
+
{
|
|
944
|
+
enemy.TakeDamage(5f);
|
|
945
|
+
}
|
|
946
|
+
// buffer automatically returned to pool here
|
|
947
|
+
}
|
|
948
|
+
|
|
949
|
+
// Array pooling example
|
|
950
|
+
void ProcessLargeDataset(int size)
|
|
951
|
+
{
|
|
952
|
+
using var lease = WallstopArrayPool<float>.Get(size, out float[] buffer);
|
|
953
|
+
|
|
954
|
+
// Use buffer for temporary processing
|
|
955
|
+
for (int i = 0; i < size; i++)
|
|
956
|
+
{
|
|
957
|
+
buffer[i] = ComputeValue(i);
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
// buffer automatically returned to pool here
|
|
961
|
+
}
|
|
962
|
+
```
|
|
963
|
+
|
|
964
|
+
**Do / Don'ts:**
|
|
965
|
+
|
|
966
|
+
- Do reuse buffers per system or component.
|
|
967
|
+
- Do treat buffers as temporary scratch space (APIs clear them first).
|
|
968
|
+
- Don't keep references to pooled lists beyond their lease lifetime.
|
|
969
|
+
- Don't share the same buffer across overlapping async/coroutine work.
|
|
970
|
+
|
|
971
|
+
<a id="pooling-utilities"></a>
|
|
972
|
+
|
|
973
|
+
**Pooling utilities:**
|
|
974
|
+
|
|
975
|
+
- `Buffers<T>` — pooled collections (List/Stack/Queue/HashSet) with `PooledResource` leases.
|
|
976
|
+
- Lists: `using var lease = Buffers<Foo>.List.Get(out List<Foo> list);`
|
|
977
|
+
- Stacks: `using var lease = Buffers<Foo>.Stack.Get(out Stack<Foo> stack);`
|
|
978
|
+
- HashSets: `using var lease = Buffers<Foo>.HashSet.Get(out HashSet<Foo> set);`
|
|
979
|
+
- Pattern: acquire → use → Dispose (returns to pool, clears collection).
|
|
980
|
+
|
|
981
|
+
- `WallstopArrayPool<T>` — rent arrays by length with automatic return on dispose.
|
|
982
|
+
- Example: `using var lease = WallstopArrayPool<int>.Get(1024, out int[] buffer);`
|
|
983
|
+
- Use for temporary processing buffers, sorting, or interop with APIs that require arrays.
|
|
984
|
+
|
|
985
|
+
- `WallstopFastArrayPool<T>` — fast array pool specialized for frequent short‑lived arrays.
|
|
986
|
+
- Example: `using var lease = WallstopFastArrayPool<string>.Get(count, out string[] buffer);`
|
|
987
|
+
- Used throughout Helpers for high‑frequency editor/runtime operations (e.g., asset searches).
|
|
988
|
+
|
|
989
|
+
**How pooling + buffering help APIs:**
|
|
990
|
+
|
|
991
|
+
- Spatial queries: pass a reusable `List<T>` to `GetElementsInRange/GetElementsInBounds` and iterate results without allocations.
|
|
992
|
+
- Component queries: `GetComponents(buffer)` clears and fills your buffer instead of allocating arrays.
|
|
993
|
+
- Editor utilities: temporary arrays/lists from pools keep import/scan tools snappy, especially inside loops.
|
|
994
|
+
|
|
995
|
+
---
|
|
996
|
+
|
|
997
|
+
## Dependency Injection Integrations
|
|
998
|
+
|
|
999
|
+
**Auto-detected packages:**
|
|
1000
|
+
|
|
1001
|
+
- Zenject/Extenject: `com.extenject.zenject`, `com.modesttree.zenject`, `com.svermeulen.extenject`
|
|
1002
|
+
- VContainer: `jp.cysharp.vcontainer`, `jp.hadashikick.vcontainer`
|
|
1003
|
+
|
|
1004
|
+
**Manual or source imports (no UPM):**
|
|
1005
|
+
|
|
1006
|
+
- Add scripting defines in `Project Settings > Player > Other Settings > Scripting Define Symbols`:
|
|
1007
|
+
- `ZENJECT_PRESENT` when Zenject/Extenject is present
|
|
1008
|
+
- `VCONTAINER_PRESENT` when VContainer is present
|
|
1009
|
+
- Add the define per target platform (e.g., Standalone, Android, iOS).
|
|
1010
|
+
|
|
1011
|
+
**Notes:**
|
|
1012
|
+
|
|
1013
|
+
- When the define is present, optional assemblies under `Runtime/Integrations/*` compile automatically and expose helpers like `RelationalComponentsInstaller` (Zenject) and `RegisterRelationalComponents()` (VContainer).
|
|
1014
|
+
- If you use UPM, no manual defines are required — the package IDs above trigger symbols via `versionDefines` in the asmdefs.
|
|
1015
|
+
- For test scenarios without LifetimeScope (VContainer) or SceneContext (Zenject), see [DI Integrations: Testing and Edge Cases](RELATIONAL_COMPONENTS.md#di-integrations-testing-and-edge-cases) for step‑by‑step patterns.
|
|
1016
|
+
|
|
1017
|
+
**Quick start:**
|
|
1018
|
+
|
|
1019
|
+
- **VContainer**: in your `LifetimeScope.Configure`, call `builder.RegisterRelationalComponents()`.
|
|
1020
|
+
- **Zenject**: add `RelationalComponentsInstaller` to your `SceneContext` (toggle scene scan if desired).
|
|
1021
|
+
|
|
1022
|
+
```csharp
|
|
1023
|
+
// VContainer — LifetimeScope
|
|
1024
|
+
using VContainer;
|
|
1025
|
+
using VContainer.Unity;
|
|
1026
|
+
using WallstopStudios.UnityHelpers.Integrations.VContainer;
|
|
1027
|
+
|
|
1028
|
+
protected override void Configure(IContainerBuilder builder)
|
|
1029
|
+
{
|
|
1030
|
+
// Register assigner + one-time scene scan + additive listener (default)
|
|
1031
|
+
builder.RegisterRelationalComponents(
|
|
1032
|
+
RelationalSceneAssignmentOptions.Default,
|
|
1033
|
+
enableAdditiveSceneListener: true
|
|
1034
|
+
);
|
|
1035
|
+
}
|
|
1036
|
+
|
|
1037
|
+
// Zenject — prefab instantiation with DI + relations
|
|
1038
|
+
using Zenject;
|
|
1039
|
+
using WallstopStudios.UnityHelpers.Integrations.Zenject;
|
|
1040
|
+
|
|
1041
|
+
var enemy = Container.InstantiateComponentWithRelations(enemyPrefab, parent);
|
|
1042
|
+
```
|
|
1043
|
+
|
|
1044
|
+
See the full guide with scenarios, troubleshooting, and testing patterns: [Relational Components Guide](RELATIONAL_COMPONENTS.md)
|
|
1045
|
+
|
|
1046
|
+
### Additional Helpers
|
|
1047
|
+
|
|
1048
|
+
- VContainer:
|
|
1049
|
+
- `resolver.InjectWithRelations(component)` — inject + assign a single instance
|
|
1050
|
+
- `resolver.InstantiateComponentWithRelations(prefab, parent)` — instantiate + inject + assign
|
|
1051
|
+
- `resolver.InjectGameObjectWithRelations(root, includeInactiveChildren)` — inject hierarchy + assign
|
|
1052
|
+
- `resolver.InstantiateGameObjectWithRelations(prefab, parent)` — instantiate GO + inject + assign
|
|
1053
|
+
|
|
1054
|
+
- Zenject:
|
|
1055
|
+
- `container.InjectWithRelations(component)` — inject + assign a single instance
|
|
1056
|
+
- `container.InstantiateComponentWithRelations(prefab, parent)` — instantiate + assign
|
|
1057
|
+
- `container.InjectGameObjectWithRelations(root, includeInactiveChildren)` — inject hierarchy + assign
|
|
1058
|
+
- `container.InstantiateGameObjectWithRelations(prefab, parent)` — instantiate GO + inject + assign
|
|
1059
|
+
|
|
1060
|
+
### Additive Scene Loads
|
|
1061
|
+
|
|
1062
|
+
- VContainer: `RegisterRelationalComponents(..., enableAdditiveSceneListener: true)` registers a listener that hydrates components in newly loaded scenes.
|
|
1063
|
+
- Zenject: `RelationalComponentsInstaller` exposes a toggle “Listen For Additive Scenes” to register the same behavior.
|
|
1064
|
+
- Only the newly loaded scene is processed; other loaded scenes are not re‑scanned.
|
|
1065
|
+
|
|
1066
|
+
### Performance Options
|
|
1067
|
+
|
|
1068
|
+
- One-time scene scan runs after container build; additive scenes are handled incrementally.
|
|
1069
|
+
- Single-pass scan (default) reduces `FindObjectsOfType` calls by scanning once and checking type ancestry.
|
|
1070
|
+
- VContainer: `new RelationalSceneAssignmentOptions(includeInactive: true, useSinglePassScan: true)`
|
|
1071
|
+
- Zenject: `new RelationalSceneAssignmentOptions(includeInactive: true, useSinglePassScan: true)`
|
|
1072
|
+
- Per-object paths (instantiate/inject helpers, pools) avoid global scans entirely for objects created via DI.
|
|
1073
|
+
|
|
1074
|
+
---
|
|
1075
|
+
|
|
1076
|
+
## Performance
|
|
1077
|
+
|
|
1078
|
+
Unity Helpers is built with performance as a top priority:
|
|
1079
|
+
|
|
1080
|
+
**Random Number Generation:**
|
|
1081
|
+
|
|
1082
|
+
- 10-15x faster than Unity.Random (655-885M ops/sec vs 65-85M ops/sec)
|
|
1083
|
+
- Zero GC pressure with thread-local instances
|
|
1084
|
+
- [📊 Full Random Performance Benchmarks](RANDOM_PERFORMANCE.md)
|
|
1085
|
+
|
|
1086
|
+
**Spatial Queries:**
|
|
1087
|
+
|
|
1088
|
+
- O(log n) tree queries vs O(n) linear search
|
|
1089
|
+
- 100-1000x faster for large datasets
|
|
1090
|
+
- QuadTree2D: 10,000 objects = ~13 checks vs 10,000 checks
|
|
1091
|
+
- [📊 2D Performance Benchmarks](SPATIAL_TREE_2D_PERFORMANCE.md)
|
|
1092
|
+
- [📊 3D Performance Benchmarks](SPATIAL_TREE_3D_PERFORMANCE.md)
|
|
1093
|
+
|
|
1094
|
+
**Memory Management:**
|
|
1095
|
+
|
|
1096
|
+
- Zero-allocation buffering pattern eliminates GC spikes
|
|
1097
|
+
- Professional-grade pooling for List, HashSet, Stack, Queue, Arrays
|
|
1098
|
+
- 5-10 FPS improvement in complex scenes from stable GC
|
|
1099
|
+
|
|
1100
|
+
**Reflection:**
|
|
1101
|
+
|
|
1102
|
+
- IL-emitted delegates 10-100x faster than System.Reflection
|
|
1103
|
+
- Safe for IL2CPP and AOT platforms
|
|
1104
|
+
- [📊 Reflection Performance](REFLECTION_HELPERS.md)
|
|
1105
|
+
|
|
1106
|
+
---
|
|
1107
|
+
|
|
1108
|
+
## Documentation Index
|
|
1109
|
+
|
|
1110
|
+
**Start Here:**
|
|
1111
|
+
|
|
1112
|
+
- 🚀 Getting Started — [Getting Started Guide](GETTING_STARTED.md)
|
|
1113
|
+
- 🔍 Feature Index — [Complete A-Z Index](INDEX.md)
|
|
1114
|
+
- 📖 Glossary — [Term Definitions](GLOSSARY.md)
|
|
1115
|
+
|
|
1116
|
+
**Core Guides:**
|
|
1117
|
+
|
|
1118
|
+
- Serialization Guide — [Serialization](SERIALIZATION.md)
|
|
1119
|
+
- Editor Tools Guide — [Editor Tools](EDITOR_TOOLS_GUIDE.md)
|
|
1120
|
+
- Math & Extensions — [Core Math & Extensions](MATH_AND_EXTENSIONS.md)
|
|
1121
|
+
- Singletons — [Singleton Utilities](SINGLETONS.md)
|
|
1122
|
+
- Relational Components — [Relational Components](RELATIONAL_COMPONENTS.md)
|
|
1123
|
+
- Effects System — [Effects System](EFFECTS_SYSTEM.md)
|
|
1124
|
+
- Data Structures — [Data Structures](DATA_STRUCTURES.md)
|
|
1125
|
+
|
|
1126
|
+
**Spatial Trees:**
|
|
1127
|
+
|
|
1128
|
+
- 2D Spatial Trees Guide — [2D Spatial Trees Guide](SPATIAL_TREES_2D_GUIDE.md)
|
|
1129
|
+
- 3D Spatial Trees Guide — [3D Spatial Trees Guide](SPATIAL_TREES_3D_GUIDE.md)
|
|
1130
|
+
- Spatial Tree Semantics — [Spatial Tree Semantics](SPATIAL_TREE_SEMANTICS.md)
|
|
1131
|
+
- Spatial Tree 2D Performance — [Spatial Tree 2D Performance](SPATIAL_TREE_2D_PERFORMANCE.md)
|
|
1132
|
+
- Spatial Tree 3D Performance — [Spatial Tree 3D Performance](SPATIAL_TREE_3D_PERFORMANCE.md)
|
|
1133
|
+
- Hulls (Convex vs Concave) — [Hulls](HULLS.md)
|
|
1134
|
+
|
|
1135
|
+
**Performance & Reference:**
|
|
1136
|
+
|
|
1137
|
+
- Random Performance — [Random Performance](RANDOM_PERFORMANCE.md)
|
|
1138
|
+
- Reflection Helpers — [Reflection Helpers](REFLECTION_HELPERS.md)
|
|
1139
|
+
|
|
1140
|
+
**Project Info:**
|
|
1141
|
+
|
|
1142
|
+
- Changelog — [Changelog](CHANGELOG.md)
|
|
1143
|
+
- License — [License](LICENSE.md)
|
|
1144
|
+
- Third‑Party Notices — [Third‑Party Notices](THIRD_PARTY_NOTICES.md)
|
|
1145
|
+
- Contributing — [Contributing](CONTRIBUTING.md)
|
|
1146
|
+
|
|
1147
|
+
---
|
|
1148
|
+
|
|
1149
|
+
## Contributing
|
|
1150
|
+
|
|
1151
|
+
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
1152
|
+
|
|
1153
|
+
### Formatting Assistance
|
|
1154
|
+
|
|
1155
|
+
- Dependabot PRs: Formatting fixes (CSharpier + Prettier + markdownlint) are applied automatically by CI.
|
|
1156
|
+
- Contributor PRs: Opt-in formatting is available.
|
|
1157
|
+
- Comment on the PR with `/format` (aliases: `/autofix`, `/lint-fix`).
|
|
1158
|
+
- If the PR branch is in this repo, the bot pushes a commit with fixes.
|
|
1159
|
+
- If the PR is from a fork, the bot opens a formatting PR targeting the base branch.
|
|
1160
|
+
- The commenter must be the PR author or a maintainer/collaborator.
|
|
1161
|
+
- Or run the Actions workflow manually: Actions → "Opt-in Formatting" → Run workflow → enter the PR number.
|
|
1162
|
+
- Not everything is auto-fixable: link checks and YAML linting may still require manual changes.
|
|
1163
|
+
|
|
1164
|
+
See more details in [CONTRIBUTING](CONTRIBUTING.md).
|
|
1165
|
+
|
|
1166
|
+
---
|
|
1167
|
+
|
|
1168
|
+
## License
|
|
1169
|
+
|
|
1170
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details.
|
|
1171
|
+
|
|
1172
|
+
## 2.0 Release Notes (Highlights)
|
|
1173
|
+
|
|
1174
|
+
- BinaryFormatter deprecated, still functional for trusted/legacy data:
|
|
1175
|
+
- `SerializationType.SystemBinary` is `[Obsolete]`. Use `SerializationType.Json` (System.Text.Json + Unity converters) or `SerializationType.Protobuf` (protobuf-net) for new work. Keep BinaryFormatter for trusted, non‑portable data only.
|
|
1176
|
+
|
|
1177
|
+
- GameObject JSON converter outputs structured JSON:
|
|
1178
|
+
- `GameObjectConverter` now writes a JSON object with `name`, `type` (assembly-qualified), and `instanceId` rather than a stringified placeholder.
|
|
1179
|
+
|
|
1180
|
+
- Minor robustness improvements:
|
|
1181
|
+
- Guarded stray `UnityEditor` imports in runtime files to ensure clean player builds.
|
|
1182
|
+
|
|
1183
|
+
See [Serialization guide](SERIALIZATION.md) for AOT/IL2CPP guidance and Unity JSON options, and [Editor tools guide](EDITOR_TOOLS_GUIDE.md) for Editor tool usage details.
|