# Team Marker Camera Control System This system provides enhanced camera controls for centering on the team marker and managing map overview in your RPG game. ## Features ### 🎯 Team Marker Centering - **Hotkey**: Press `C` to center the camera on the team marker - **Auto-Focus**: Automatically zooms to a comfortable level when centering - **Auto-Center**: Optionally auto-centers when the team marker is first placed ### 🗺️ Full Map Overview - **Hotkey**: Press `F` to zoom out and show the entire map - **Smart Sizing**: Automatically calculates the best zoom level to fit the whole map - **Increased Zoom Range**: Enhanced zoom-out capability for large maps ### 🎮 Enhanced Controls - **Smooth Movement**: All camera movements are smoothly animated - **Manual Override**: User can take manual control during automatic movements - **Help System**: Press `H` to see available controls ## Implementation ### Method 1: Enhanced Existing Controllers The following camera controllers have been enhanced with team marker functionality: #### MapCameraController (BattleFieldMaker) - Enhanced for battlefield/map scenes - Respects UI boundaries (doesn't interfere with side panels) - Default hotkeys: `C` (center), `F` (full map), `H` (help) #### MMCameraController (MapMaker2) - Enhanced for MapMaker2 scenes - Full camera control with mouse drag support - Default hotkeys: `C` (center), `F` (full map), `H` (help) ### Method 2: Universal Component (Recommended) #### TeamMarkerCameraController A universal component that can be attached to any camera to provide team marker functionality. **Usage:** 1. Add the `TeamMarkerCameraController` script to your main camera 2. Configure the settings in the inspector 3. The component will automatically find the team marker and provide controls **Key Settings:** - `centerOnTeamKey`: Key to center on team marker (default: C) - `zoomToFullMapKey`: Key to zoom to full map (default: F) - `centeringSpeed`: Speed of camera animations (default: 2) - `focusZoomLevel`: Zoom level when focusing on team (default: 15) - `maxZoomOut`: Maximum zoom out for full map (default: 200) - `autoCenterOnTeamPlacement`: Auto-center when team is placed (default: true) ## Hotkeys Summary | Key | Action | Description | |-----|--------|-------------| | `C` | Center on Team | Centers camera on team marker with comfortable zoom | | `F` | Full Map View | Zooms out to show entire map | | `H` | Show Help | Displays available controls in console | | Mouse Wheel | Zoom | Standard zoom in/out | | WASD/Arrows | Move | Manual camera movement (where supported) | | Middle Mouse | Drag | Drag camera around (where supported) | ## Integration with Existing Systems ### Team Placement Integration - Automatically detects `SimpleTeamPlacement` component - Works with both exploration and non-exploration modes - Handles coordinate system conversions automatically ### Map System Integration - Compatible with `MapMaker2` - Automatically detects map dimensions for full map view - Works with both static and dynamically generated maps ### UI Integration - Respects UI panel boundaries in `MapCameraController` - Doesn't interfere with existing UI systems - Can be easily enabled/disabled as needed ## Troubleshooting ### "Team marker not found" Warning - Ensure `SimpleTeamPlacement` component exists in the scene - Check that the team has been placed (call `RandomlyPlaceTeam()` if needed) - Verify the team marker GameObject exists and is active ### Camera Not Moving - Check that the camera has the enhanced controller script attached - Ensure the script is enabled and not conflicting with other camera scripts - Verify hotkeys are not being captured by other systems ### Zoom Levels - Adjust `maxZoom` in camera controllers for larger zoom range - Modify `focusZoomLevel` for preferred team marker focus distance - Use `maxZoomOut` in `TeamMarkerCameraController` to limit maximum zoom ## Performance Notes - All camera movements use smooth interpolation for better UX - Automatic movement stops when target is reached to save performance - Manual controls override automatic movement to prevent conflicts - Component automatically finds required references at startup ## Future Enhancements Possible future improvements: - Save/restore camera positions - Multiple preset camera positions - Follow mode for team marker during movement - Minimap integration - Custom zoom curves for different map sizes