GameMusicManager

Overview

Bridges gameplay with FMOD music parameters via a reusable SFXSingle music emitter. Subscribes to Atoms events to tweak soundtrack layers (Event Music, Capture) and exposes helpers for victory/defeat stingers. Also listens for a Play Main Menu Music event to start the theme. fileciteturn7file0

Serialized References

  • SFXSingle musicSFX — FMOD event wrapper used for the music instance.
  • FloatEvent changeEventMusicParameter — drives the “Event Music” FMOD parameter.
  • FloatEvent changeCaptureParameter — drives the “Capture” FMOD parameter.
  • VoidEvent playMainMenuMusic — triggers PlayMusic(). fileciteturn7file0

Lifecycle

  • Start()
    • Registers:
      • changeEventMusicParameter → ChangeEventMusicParameter(float)
      • changeCaptureParameter → ChangeCaptureParameter(float)
      • playMainMenuMusic → PlayMusic()
  • OnDestroy()
    • Unregisters the float events (changeEventMusicParameter, changeCaptureParameter). fileciteturn7file0

Public API

void PlayMusic();                     // musicSFX.Play()
void ChangeEventMusicParameter(float v); // Set "Event Music" to v
void ChangeCaptureParameter(float v);    // Set "Capture" to v
public void ChangeVictoryParameter();    // Set "victory - lose" to 1f
public void ChangeDefeatParameter();     // Set "victory - lose" to 2f

All setters forward to musicSFX.SetCustomParameter(paramName, value). fileciteturn7file0

Integration Notes

  • Call playMainMenuMusic.Raise() from your menu flow to start the theme.
  • Pair with TimeManager (not shown here) to reset event music parameter to 0 when resuming gameplay. fileciteturn7file0