There is a critical bug which prevents this version from working on all non-Windows platforms. Dissonance 4.0.1 is now available on the asset store with a fix for this issue, please upgrade as soon as possible.
This release brings two new features to Dissonance.
Custom Microphone Capture Scripts
With custom microphone capture scripts it's possible to write a new script which captures audio data and feeds it in to Dissonance. This allows platform specific microphone implementations which can access special features such as super low latency audio capture, special effects or acoustic echo cancellation. To write one of these scripts create a new MonoBehaviour which implements the
IMicrophoneCapture interface and attach it to the same gameObject as the
Remote Rooms API
We've added some new properties which expose which rooms remote players are listening to. There are several ways to acccess this data:
- Access the
VoicePlayerState:Roomsproperty for a list of which rooms that specific player is listening to
- Subscribe to the
VoicePlayerState:OnExitedRoomevents to receive an event when that specific player starts or stops listening to a room
- Subscribe to the
DissonanceComms:OnExitedRoomevents to receive an event when any player starts or stops listening to a room
These changes involve two very small breaking changes to custom network scripts using the
ICommsNetwork interface. The events
Action<RoomEvent> PlayerEnteredRoom and
Action<RoomEvent> PlayerExitedRoom have been added to the interface, these events should fire when a player starts and stops listening to a room. If your custom network layer does not support rooms simply never raise the events.
- New Microphone API allows custom microphone capture scripts for interfacing with platform specific audio APIs
- New remote Rooms API exposes which rooms remote players are listening to
- Changed menu item from
Windows > Dissonance > Welcome Windowto
Windows > Dissonance > Integrations
- Added a new method for custom network scripts to signal fatal errors
VoicePlaybackState:SpeakerPrioritywhich fetches the current priority a player is speaking with
- Compiled iOS binaries with bitcode
- Handling the case when a network client connects even when it is already connected with a different network connection
- More robustly handling HLAPI clients timing out (preventing a potential server crash and restart)
- Fixed UWP build not passing app store certification
- Will not run on any non-windows platforms. Expect a runtime error for MacOS, Linux and Android. Expect a build error for iOS.
- No Acoustic Echo Cancellation (Work in progress - Contact us if you're interested in testing this)