Parameter change after collider enter trigger game object

Im building an adaptive ambience system wich I fairly simple I have 1 base ambience wich I always playing and different ambience add ons that are supposed to play when entering a room and are supposed to stop playing after exiting the room. I built a parameter to unmute the room add on if the parameter is in between 0.5 and 1. I tried using the given food parameter changer but those aren’t working ( trigger enter ) even after making my game object( the room) to a trigger and giving my player a collider. im now trying to solve it by making my own script. wich is kinda working. I can see that it’s changing a parameter in the console after entering and exiting the istrigger object but it doesnt seem to change the parameters in food. idk if they aren’t connected corectly or if its a code error or a Fmod issue. I will add the 2 scrypt codes of the parameter changer and the manager.

using FMOD.Studio;

using FMODUnity;

using UnityEngine;

///

/// Spielt ein dauerhaftes Background-Event und steuert die Raum-Atmosph�re �ber einen FMOD-Parameter.

/// - Hintergrund-Event wird einmal gestartet und bleibt aktiv.

/// - R�ume setzen beim Betreten/Verlassen den Parameter auf konfigurierte Werte.

///

public class BackgroundAudioManager : MonoBehaviour

{

\[Header("FMOD Background Event")\]

\[Tooltip("FMOD StudioEventEmitter, der das Hintergrund-Event abspielt (one-shot start, looping in FMOD).")\]

public StudioEventEmitter backgroundEmitter;

\[Header("Parameter-Steuerung")\]

\[Tooltip("Name des FMOD-Parameters, der die Raum-Atmosph�re steuert (z.B. \\"RoomType\\").")\]

public string roomParameterName = “RoomType”;

\[Tooltip("Standardwert, wenn kein Raum aktiv ist (z.B. Korridor/Neutral).")\]

\[Range(0f, 1f)\] public float defaultRoomValue = 0f;



\[Header("Debug")\]

public bool debugLogs = false;

private EventInstance _instance;

void Awake()

{

if (backgroundEmitter == null)

    {

Debug.LogError(“[BackgroundAudioManager] Kein StudioEventEmitter zugewiesen.”);

return;

    }

// Emitter starten (falls noch nicht aktiv)

backgroundEmitter.Play();

_instance = backgroundEmitter.EventInstance;

if (!_instance.isValid())

    {

// Versuch erneut nach Play()

_instance = backgroundEmitter.EventInstance;

    }

if (_instance.isValid())

    {

// Parameter initial setzen

_instance.setParameterByName(roomParameterName, defaultRoomValue);

if (debugLogs) Debug.Log($“[BackgroundAudioManager] Init parameter {roomParameterName}={defaultRoomValue}”);

    }

else

    {

Debug.LogWarning(“[BackgroundAudioManager] EventInstance nicht valide. F�llt auf globalen Parameter zur�ck.”);

RuntimeManager.StudioSystem.setParameterByName(roomParameterName, defaultRoomValue);

    }

}

///

/// Wird von Raum-Triggern gerufen, um den Parameter zu setzen.

///

public void SetRoomParameter(float value)

{

if (_instance.isValid())

    {

_instance.setParameterByName(roomParameterName, value);

if (debugLogs) Debug.Log($“[BackgroundAudioManager] Set instance param {roomParameterName}={value}”);

    }

else

    {

RuntimeManager.StudioSystem.setParameterByName(roomParameterName, value);

if (debugLogs) Debug.Log($“[BackgroundAudioManager] Set global param {roomParameterName}={value}”);

    }

}

///

/// Reset auf Standard, wenn kein Raum aktiv ist.

///

public void ResetToDefault()

{

SetRoomParameter(defaultRoomValue);

}

}

and the triggered script

using UnityEngine;

///

/// Legt einen Wert f�r den Background-Raum-Parameter fest, wenn der Spieler den Bereich betritt/verl�sst.

/// Mehrere solcher Trigger k�nnen dieselbe Background-Instanz bedienen.

///

[RequireComponent(typeof(Collider))]

public class RoomBackgroundTrigger : MonoBehaviour

{

\[Header("Manager")\]

\[Tooltip("Referenz zum BackgroundAudioManager im Level.")\]

public BackgroundAudioManager manager;

\[Header("Trigger Filter")\]

\[Tooltip("Tag, das den Spieler identifiziert.")\]

public string playerTag = “Player”;

\[Header("Raum-Parameter")\]

\[Tooltip("Wert f�r den Raumzustand beim Betreten.")\]

\[Range(0f, 1f)\] public float enterValue = 0.5f;

\[Tooltip("Beim Verlassen auf Standard zur�cksetzen.")\]

public bool resetOnExit = true;

private void Reset()

{

// Versuche, Manager automatisch zu finden

manager = FindObjectOfType();

var col = GetComponent();

col.isTrigger = true;

}

private void OnTriggerEnter(Collider other)

{

if (!other.CompareTag(playerTag) || manager == null) return;

manager.SetRoomParameter(enterValue);

}

private void OnTriggerExit(Collider other)

{

if (!other.CompareTag(playerTag) || manager == null) return;

if (resetOnExit) manager.ResetToDefault();

}

}

please and THANKYOUUU