A professional, ready-to-use first-person movement solution. A complete feature set: smart crouching, interactive footstep sounds, and smooth camera control.First Person Controller ProFirst Person Controller Pro is a powerful, optimized, and professional-grade controller designed for developers who value quality and reliability. It provides all the necessary tools for creating realistic, responsive, and "AAA-feel" first-person movement. Save weeks of development time and focus on your game's unique features with a controller that works perfectly out of the box.🎮 Key Features:1. Advanced Movement & Physics:State-Aware Movement: Smooth walking, sprinting, and jumping with a robust state machine (Walking, Running, Crouching, Jumping).Stair-Stability Tech: Improved ground detection using SphereCast and constant downward force to eliminate "jitter" or "bouncing" when descending stairs or slopes.Smart Crouching System:Overhead Obstacle Detection: A precise system that prevents the player from standing up if there is an object above their head, avoiding clipping through geometry.Visual Debugging: Gizmos support in the Scene view to easily visualize ground and overhead checks.Smooth Transitions: Height changes use interpolated calculations to eliminate camera jerking.2. Cinematic Camera System:Inertia & Weight: New target-based rotation logic with adjustable Camera Weight for professional, smooth mouse-look without "snapping."Dynamic FOV (Field of View): Smoothly transitions FOV during sprinting (e.g., 60° → 70°) and maintains state during jumps for visual consistency.Hybrid Camera Tilting: Procedural tilting that responds both to side-to-side movement (strafing) and mouse rotation velocity.State-Based Head Bobbing: Separate frequency and amplitude settings for walking, running, and crouching to enhance immersion.3. Professional Surface Audio System:Surface Awareness: Automatically detects ground materials using both Unity Terrain Layers (Textures) and GameObject Tags.Anti-Cut Logic: A smart "Air-Time Threshold" prevents footstep sounds from abruptly cutting off or restarting when moving over small bumps or down stairs.Dynamic Pitch: Audio playback speed automatically adjusts based on the movement state (Crouch = slower/deeper, Run = faster/higher).4. Developer-Friendly Design:Clean & Documented C# Code: Fully commented using XML standards for perfect IntelliSense support and easy modification.Inspector-Centric Setup: Every parameter, from tilt intensity to bob frequency, is exposed via the Inspector with helpful Tooltips.Zero Hidden Dependencies: Built on the standard Unity CharacterController for maximum compatibility with other assets.🛠 Who is this asset for?Indie Developers: Who need a polished, ready-to-use foundation for their FPS, Horror, or Adventure games.Prototypers: Quickly test gameplay ideas with controls that already feel "finished."Students: Learn from a well-structured, professional-grade codebase that follows industry standards.📦 What's included in the package?PlayerController.cs: The core logic handling movement, physics-safe rotation, and camera effects.PlayerMusic.cs: Advanced surface-detection audio script with Terrain support.Ready-to-use Prefab: Pre-configured player hierarchy for drag-and-drop integration.Documentation: Clear setup instructions and XML-documented code.🔄 Version 2.3 - The "Stability & Polish" Update:NEW: Full Terrain Texture detection for footstep sounds.NEW: Target-based rotation system for lag-free camera movement.NEW: Anti-restart audio logic for smooth movement on stairs.FIXED: Resolved "standing into ceiling" bugs with new overhead clearance checks.FIXED: Eliminated FOV "flickering" issues during state transitions.First Person Controller Pro is the foundation your next project deserves. Experience the difference of a controller built with physics stability and professional polish.Professional First-Person Character Controller Solution for Unity EngineThis implementation provides a robust movement mechanic, an interactive audio system, and smooth camera control, engineered for production environments.Core ComponentsDependencies:Unity's CharacterController componentTransform-based camera systemLayer-based collision detectionTerrain System Support: Integration with Unity TerrainDataMovement Architecture:Physics-Stable Grounding: Improved SphereCast detection with a constant downward force (-5f) to prevent "micro-bouncing" on slopes and stairs.Enhanced State Machine: Integrated Walking, Running, Crouching, and Jumping states with priority-based speed multipliers.Smart Standing Logic: Advanced overhead obstacle detection using a dedicated standingHeightMarker to prevent geometry clipping.Step Offset & Slope Processing: Optimized for standard Unity physics with frame-rate independent gravity calculations.Camera System:Target-Based Rotation (New): Decoupled input from rotation using TargetYaw/Pitch variables to eliminate "jitter" or "snapping" during frame drops.Weighted Camera Movement: Adjustable CameraWeight parameter for high-end cinematic smoothness and input lag simulation.Dynamic FOV System: State-aware FOV transitions (60° → 70°) that persist through jump arcs for visual consistency.Hybrid Camera Tilting: Procedural leaning based on both horizontal movement vectors and mouse look velocity.Procedural Head Bobbing: State-dependent frequency and amplitude curves for realistic movement simulation across all speeds.Audio Management System:Multi-Source Surface Detection:Terrain Texture Detection: Real-time sampling of the most prominent AlphaMap texture at the player's position.Tag-Based Identification: Standard fallback to GameObject tags for non-terrain objects.Advanced Playback Logic:Anti-Cut Smoothing: Air-time threshold logic (0.2s) prevents audio interruptions during stair descents or small jumps.Dynamic Pitch Modulation: Automatic pitch shifting based on movement state (Crouching: 0.8x, Running: 1.3x).Advanced FeaturesSmart Standing & Ceiling Detection:Precise Clearance Checks: Uses OverlapSphere at the height marker to ensure the player only stands when a safe clearance is detected.Visual Status Gizmos: Color-coded Scene view debugging (Green: Clear / Red: Blocked).Auto-Crouch Retention: Automatically stays in crouch state as long as an obstacle remains overhead.Physics-Safe Interactions:Velocity Reset: Smart landing logic that resets vertical velocity to a stable base value to prevent "gravity stacking" during ground contact.Consistent FOV Tracking: FOV transitions track player intent (input keys) rather than raw physics states, preventing FOV "flickering" on stairs.Optimization FeaturesPerformance:Cached Component Architecture: Minimal use of GetComponent or Camera.main inside Update loops.Efficient Math: Switched to sqrMagnitude for movement checks to reduce CPU overhead.Optimized Physics Sequence: Ground, Crouch, and Movement checks are processed in a specific order to ensure zero-frame latency in state updates.Code Quality (Asset Store Standards):Full XML Documentation: Complete code comments for every method and property.Inspector Tooltips: Comprehensive tooltips for all public fields in the Unity Inspector.Namespaced Structure: Organized into PlayerSystem and PlayerAudio to prevent conflicts in large projects.Integration GuideBasic Setup:Attach PlayerController to a GameObject with a CharacterController.Assign the Camera Transform in the inspector.Place a Standing Height Marker (empty GameObject) at the player's full height level.Define Ground Layers and Obstacle Layers in the settings.Audio Configuration:Add PlayerMusic to the player hierarchy.Populate the SurfaceSettings array with your Terrain Textures and/or Object Tags.Assign corresponding AudioClips for each surface.Version 2.3 Technical Updates (Major Update):Major: Replaced direct rotation with a target-based smoothing system for AAA camera feel.Major: Added full support for Terrain Texture-based footstep detection.New: Implemented "Stair Smoothing" logic to the audio system to prevent sound cutting.Improved: Upgraded overhead detection to prevent CharacterController ceiling clipping.Optimization: Reduced GC allocation footprint by optimizing surface detection raycasts.




