using System.Collections.Generic; using System.Linq; using DarkTonic.MasterAudio; using UnityEngine; public class WaterAmbience : MonoBehaviour { [SerializeField] private string waterSoundName; [SerializeField] private List colliders = new List(); [SerializeField] private Transform playerAudioFollower; private void Start() { colliders = GetComponentsInChildren().ToList(); MasterAudio.PlaySound3DFollowTransform(waterSoundName, playerAudioFollower, Singleton.Instance.SettingsData.UnderwaterVolume).ActingVariation.VarAudio.loop = true; } private void FixedUpdate() { Vector3 position = FScriptsHandler.Instance.PlayerTransformPoint.position; float num = float.PositiveInfinity; Vector3 position2 = Vector3.zero; foreach (Collider collider in colliders) { Vector3 vector = collider.ClosestPoint(position); float num2 = Vector3.Distance(vector, position); if (num2 < num) { num = num2; position2 = vector; } } playerAudioFollower.position = position2; } private void OnDestroy() { MasterAudio.StopAllOfSound(waterSoundName); } }