Summary
- UniVoice 4.11.0 is out
- Tags are now sent as
string[]which was added to com.adrenak.brw@1.2.0 IAudioClient<T>.UpdateVoiceSettingsmethod added to easily update voice settings.- Convenience methods added to
VoiceSettingsto easily add, remove and set my tags, muted tags and deafened tags - Tags sample added to demonstrate a team vs team voice chat scenario
Description
The commit can be found here
FishNetClient, FishNetServer, MirrorClient and MirrorServer changed the way clients send and server reads the tags. I had tried something previously, and a developer later reported to me that tags were not being exchanged correctly. While I don't remember the issue exactly, I decided to add string array reading and writing to BRW and use that instead.
IAudioClient<T>.UpdateVoiceSettings has been added because it's just really annoying to have to remember calling SubmitVoiceSettings after every modification. It also makes things more verbose than they need to in many circumstances. Consider the tags sample script. Each of those listeners would look something like this:
x => {
UniVoiceFishNetSetupSample.ClientSession.Client.YourVoiceSettings.SetMyTag("red", x);
UniVoiceFishNetSetupSample.ClientSession.Client.SubmitVoiceSettings();
}
As far as convenience methods go, I had written in the client tags annoucement post that I will add some API enhancements to VoiceSettings, and 4.11.0 adds methods that allow you to set, add and remove tags instead of modifying the tag list directly.
And finally, I've added tags samples. It creates a barebones team vs team voice chat environment. Run on two clients, on one set My Tags to Red and on the other set it to Blue. On the Red client, mute and deafen Blue. And on Blue client, mute and deafen Red. This ensures that members of the red team can neither hear nor speak to blue team, and vice versa.
Closing thoughts
I have a feeling tags is done for now. I don't see myself many any big changes or improvements at least in the 4.x cycle. But let me know if you face any issues.