Drag-and-place straight wall runs with joint-aware layout, obstacle-aware previews, and a smart wall part graph for snapping.🚀 Procedural Wall & Joint SystemBring your construction or strategy game to life with the Wall System. Designed for developers who need more than just static objects, this package provides a robust framework for creating connected wall networks, defensive perimeters, or modular buildings.Here’s what our package offers:Easy to Understand: Clean, modular, and developer-friendly C# code, easy to customise behaviour.Ready to Use: Start building walls immediately with included wall, door and window prefabs.Dynamic Adaptation: Walls automatically resize and adapt to fit between joints.Procedural meshes: Generates wall for active placement, smoothly resizing the mesh.Dual Demo Scenes: Explore two distinct configuration setups with castle and house construction demo scenes.Seamless Editing: Integrated flows for replacing and removing placed walls dynamically.🔧 Main FeaturesStraight-Run Placement: Effortlessly drag from joint to joint to create long, aligned stretches of walls.Smart "Obstacle Pockets": Automatically replaces blocked segments with "Pocket Joints" (towers/corners) when hitting skippable obstacles.Joint-to-Joint Snapping: Precise "magnet" snapping to existing joints and segments for a perfect fit.Pool-Based Previews: High-performance preview system using object pooling to handle long wall runs without frame drops.Smart Replacement Flow: Swap existing wall segments with doors, windows, or custom wall types. Supports multi-segment replacement in a single action.Joint-to-Joint Removal: Remove segments between joints with customizable visual preview objects during the deletion flow. Here joints are removed once all connections are removed to it.Custom Wall Anchors: Define custom connection points for wall objects, used by snapping-attach feature.⚙️ Adjustable SettingsSkippable Terrain: Choose whether terrain gaps or unreachable areas should completely block placement or simply be skipped.Obstacle Skipping: Configure impassableLayerMask to define what blocks a wall vs. what triggers a pocket joint (gaps in placement - AoE behaviour).Snapping Sensitivity: Adjustable threshold for finding and connecting to existing wall networks.🔑 Efficient Placement ToolsRun Placement Logic: Fine-tuned minimal placement distance, toggle impassable object skipping where walls cannot be placed and are skipped.Snapping & Resizing: Toggle segment resizing, standalone joint placement, segment-snapped joint placement, and adjusting snapping threshold slider.Replacement & Removal Rules: Configure advance behaviour like use of Raycast for Snapping, Hide Preview Until Snapped, Ignore Edge Joint Overap and Allow Internal Joint Consumption.Graph Depth Control: Adjustable depth of ignoring nearby connections to manage how deep the system checks the wall network when encountering obstacles.🎮 Input SystemUnified Support: Fully compatible with both the New Input System and the Legacy Input framework.Extendable Logic: Add custom handlers, snapping and querying to extend or add new logic like wall attachments.Validation: Create additional validators to prevent placement with custom rules, like e.g. enough resources.Dependency: This package builds upon and extends the Object Placement package using its public interfaces, seamlessly hijacking the default placement flow when a wall asset is selected for placement.📭 Support Ready: Have a question or need help? Reach out via Email or Discord.

