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