Tagment provides you with ability to add tags to individual component. Similar to game object but better with support for multiple tags.Tested with Unity2022.3.27f16.2Tagment is a lightweight Unity extension that lets you assign custom tags directly to individual components, moving beyond standard GameObject-level tagging. By tagging specific components, you can easily organize, filter, and identify them at runtime to build flexible ability systems, detection filters, and conditional behaviors.Why Tag Components?Imagine a character setup with multiple colliders (head, body, limbs) all attached to a single GameObject. With Tagment, you can apply a custom tag to each Collider component individually. When a raycast strikes the character, you can instantly check the component's tag to determine exactly which body part was hit, enabling highly precise and modular hit detection.Key Features:True Component Tagging: Tag scripts, colliders, and built-in components independently of their parent GameObject.Advanced Filtering: Easily query and filter components at runtime based on their specific tags.Modular Design: Perfect for complex combat mechanics, inventory systems, and granular interaction layers.Whether you are building complex hitboxes or dynamic trigger systems, Tagment gives you the exact component-level control your Unity project needs.Some Links:Documentation | EmailCore Architecture & APIExtension-Based API: Utilizes C# extension methods on Component and GameObject (GetTags, ContainsTag, GetComponentWithTag), providing an intuitive, native-feeling syntax similar to Unity's standard component queries.LINQ-Powered Queries: Uses centralized LINQ queries to keep component filtering DRY, supporting complex checks like ContainsTagsAny and ContainsTagsAll.Non-Intrusive Data Storage: Component-to-tag mappings are stored locally on their respective GameObjects using an automatically generated, hidden TagsContainer component. This prevents cluttering the Unity Inspector hierarchy.Dictionary Serialization: Safely serializes the complex Component to string[] mappings using a custom SerializedDictionary implementation.Settings & Scope ManagementGlobal Tags: Project-wide tags are centrally managed and stored using a custom ScriptableSingleton (TagmentSettings).Scene-Relative Tags: Context-specific tags (e.g., tags only relevant to a specific level or boss arena) are isolated and managed via a dedicated SceneTagmentSettings MonoBehaviour.Editor Workflow & ToolingAutomated Tag Propagation: Built-in editor utilities (TagsContainerUtility) handle the global renaming and deletion of tags. Modifying a tag in the settings automatically updates all associated TagsContainer instances across loaded scenes to prevent orphaned strings.Native UI Integration: Global and scene settings are managed via clean, native-feeling UIs using Unity's ReorderableList (configured for inline editing and safe deletions).Advanced Search Provider: Component tag assignment is handled through a modern, searchable popup menu utilizing Unity's ISearchWindowProvider, complete with dynamic visual indicators (tick/empty icons) for toggling active tags.Data PortabilityJSON Import/Export: Features simple serialization wrappers (TagsExportDTO) that allow both Global and Scene tag lists to be exported to JSON, making it easy to share configurations across projects or maintain version-control backups.



