Networking Voice
coherence offers realtime voice networking through a proven solution: Dissonance Voice by Placeholder Software. It can be obtained through the Asset Store.

coherence > Hub > Samples
.In the future, there might be other voice integrations available. If you'd like to see support for a solution you're fond of, reach out to us!
Once imported, Assets/Dissonance/Integrations/Coherence
contains the integration and a demo scene.
Here's a breakdown of the components this integration offers. Further down we walk through a practical setup.
CoherenceCommsNetwork
The core of the integration. Runs Dissonance as Server+Client (Host) or Client. To decide in which mode to run, it relies on authority.
Create a networked prefab with this component attached. Whoever has authority over it, will be the server.
CoherenceSyncVoice
Defines the networked entity associated with each client. To do this, it relies on Client Connections.
Create a networked prefab with this component attached, and reference it as a Client Connection Prefab on your CoherenceBridge. Each client on the network will send data to the server through this entity.
CoherencePlayer
Implements a Dissonance Player, used for 3D and proximity audio processing.
Add to your networked player.
The demo project, found in Assets/Dissonance/Integrations/Coherence/Demo
, showcases how all these pieces work in conjunction. The scene Demo
describes within the hierarchy each of the pieces.

Setup from scratch
If you prefer to set up voice networking from scratch, here's how to do it. You will need:
A networked prefab that acts as the server
A networked prefab that acts as the client
(Optional) if you want proximity-based voice, a Networked Prefab that acts as the player
Server (via CoherenceCommsNetwork)
Create a GameObject and attach CoherenceCommsNetwork to it. This automatically adds CoherenceSync and DissonanceComms.
Now, convert it into a prefab. You can do this by clicking on the Sync with coherence header, through the CoherenceSync inspector, or just by dragging it somewhere from the Hierarchy window into the Project window.
This prefab will represent our voice server. Keep it on the scene, or instantiate it at the time you want to start the Dissonance voice network.
In the demo content, this Prefab is called Coherence Dissonance Comms
.
Client (via CoherenceSyncVoice)
Create a GameObject and attach CoherenceSyncVoice to it. This automatically adds CoherenceSync.
Now, convert it into a prefab. You can do this by clicking on the Sync with coherence header, through the CoherenceSync inspector, or just by dragging it somewhere from the Hierarchy window into the Project window.
This Prefab will represent our voice client. Don't instantiate this yourself. Instead, reference it on your CoherenceBridge component as a client connection prefab.

In the demo content, this prefab is called Coherence Sync Voice
.
Player (via CoherencePlayer)
Attach CoherencePlayer to the root of your player prefab, which should be a networked prefab.
If your player isn't networked yet, attaching this component will also attach a CoherenceSync.
This Prefab will now report position to Dissonance, to allow proximity-based voice.
In the demo content, this prefab is called Coherence Player
.
That's all folks
From here on, you can start to experiment with voice. Make sure to keep reading through Dissonance's Documentation for further insights into voice support.
Last updated
Was this helpful?