Surface Particle Manager

SurfaceParticleManager creates and manages particle effects for all vehicle wheels, including tire smoke, surface dust, and debris chunks.
Overview
Particles are emitted on a per-wheel basis. Each wheel has its own SurfaceParticleSystem that handles two types of particle effects:
- Smoke Particles: Emitted during tire slippage (wheelspin, braking, drifting). Emission scales with slip magnitude. Best for hard surfaces like asphalt or concrete.
- Dust Particles: Emitted based on wheel speed when rolling over loose surfaces like dirt, gravel, or sand. Creates ambient dust regardless of slip.
- Chunks: Small debris particles kicked up by the wheel, emitted based on angular velocity and slip.
The particle type and appearance are controlled by the current SurfacePreset assigned to each wheel through ground detection.
Vehicle-Level Settings
Longitudinal Slip Particle Coeff
Controls how much wheelspin and brake lockup affect smoke particle emission. Higher values produce more smoke during acceleration and braking. Only affects smoke type particles (range: 0-5).
Lateral Slip Particle Coeff
Controls how much sideways sliding affects smoke particle emission. Higher values produce more smoke during drifting and cornering. Only affects smoke type particles (range: 0-5).
Particle Size Coeff
Multiplier for particle size across all wheels. Use to scale particles for vehicle size. For surface-specific size adjustment, modify the SurfacePreset instead (range: 0-2).
Emission Rate Coeff
Multiplier for particle emission rate across all wheels. Use to adjust emission intensity per vehicle (e.g., lighter vehicles produce less dust). For surface-specific emission, modify the SurfacePreset instead (range: 0-2).
Binary Emission
When enabled, particles either fully emit or don't emit with no interpolation. Use for dusty surfaces like gravel where slip magnitude doesn't strongly affect dust amount. When disabled, emission smoothly scales with wheel slip for surfaces like asphalt.
Surface-Specific Settings
Particle behavior is primarily controlled through SurfacePreset ScriptableObjects:
- Particle Type: Smoke (slip-based) or Dust (speed-based)
- Particle Color/Size/Lifetime: Visual appearance
- Emission Rates: Max emission per distance traveled
- Chunk Settings: Debris emission and lifetime
Modify these in the SurfacePreset assets, not in the manager.