From ece18ce5d6c3dd52c21319286798a65381c2594a Mon Sep 17 00:00:00 2001 From: Jamie Greunbaum Date: Sat, 2 May 2026 04:49:04 -0400 Subject: [PATCH] Attempting to make the microphone work better when disabled. --- Assets/UdonSharp/Microphone.cs | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/Assets/UdonSharp/Microphone.cs b/Assets/UdonSharp/Microphone.cs index 09082a7..b783d13 100644 --- a/Assets/UdonSharp/Microphone.cs +++ b/Assets/UdonSharp/Microphone.cs @@ -1,5 +1,4 @@  -using System; using UdonSharp; using UnityEngine; using VRC.SDKBase; @@ -11,7 +10,7 @@ public class Microphone : UdonSharpBehaviour [SerializeField] private float _MikedVoiceDistanceNear = 30.0f; [SerializeField] private float _MikedVoiceDistanceFar = 60.0f; - private VRCPlayerApi[] _EnteredPlayers = new VRCPlayerApi[MAX_PLAYERS]; + private VRCPlayerApi[] _EnteredPlayers = new VRCPlayerApi[MAX_PLAYERS]; private const float DEFAULT_VOICE_DISTANCE_NEAR = 0.0f; private const float DEFAULT_VOICE_DISTANCE_FAR = 25.0f; @@ -37,6 +36,21 @@ public class Microphone : UdonSharpBehaviour } public override void OnPlayerTriggerExit(VRCPlayerApi Player) + { + _PlayerExitedTrigger(Player); + + base.OnPlayerTriggerExit(Player); + } + + public override void OnPlayerLeft(VRCPlayerApi Player) + { + _PlayerExitedTrigger(Player); + + base.OnPlayerLeft(Player); + } + + + private void _PlayerExitedTrigger(VRCPlayerApi Player) { Player.SetVoiceDistanceNear(DEFAULT_VOICE_DISTANCE_NEAR); Player.SetVoiceDistanceFar(DEFAULT_VOICE_DISTANCE_FAR); @@ -49,21 +63,5 @@ public class Microphone : UdonSharpBehaviour break; } } - - base.OnPlayerTriggerExit(Player); - } - - - public void OnDisable() - { - for (int i = 0; i < _EnteredPlayers.Length; i++) - { - if (_EnteredPlayers[i] != null && _EnteredPlayers[i].IsValid()) - { - _EnteredPlayers[i].SetVoiceDistanceNear(DEFAULT_VOICE_DISTANCE_NEAR); - _EnteredPlayers[i].SetVoiceDistanceFar(DEFAULT_VOICE_DISTANCE_FAR); - } - _EnteredPlayers[i] = null; - } } }