Quick Start: Dissonance with UNet High Level API (HLAPI)
This Quick Start guide is for those of you integrating Dissonance into a game with the Unity Networking High Level API.
This tutorial will guide you through the steps required to get a basic Dissonance setup working in your project. By the end of this tutorial, you will having working voice comms with all users talking in a global chat room.
Before beginning this tutorial, please refer to the installation guide to learn how to install Dissonance into your project.
A demo scene for this tutorial can be found in the
Step 1: Dissonance Comms Object
Dissonance runs mostly from a single game object, which should be placed somewhere near the root of your scene. This object contains the main "Dissonance Comms" behavior, together with the UNet HLAPI networking script.
To place the default Dissonance object into your scene, drag and drop the
DissonanceSetup prefab from the
Dissonance/Integrations/UNet_HLAPI folder into your scene.
Once you have instantiated the
DissonanceSetup prefab, you should have an object with two scripts attached: "Dissonance Comms" and
Step 1a: Setup Network Manager
In this configuration Dissonance sends it's network packets through the UNet High Level API - this means you need a high level network session setup for Dissonance to use.
To create a high level network session add a
Network Manager to your scene, this is a Unity component which will handle setting up your network. If you need a basic UI for test purposes also add a
Network Manager HUD to your scene, this is another Unity component which shows a simple UI for creating and joining sessions.
Dissonance needs two network channels to send it's data through. On the
Network Manager component check the
Advanced Configuration checkbox and add two new channels, configure one as
Reliable Sequenced and the other as
Unreliable. In the Dissonance
Hlapi Comms Network inspector check the
Reliable Channel and
Unreliable Channel fields correspond to the channels numbers in the
Step 2: Add a Broadcast Trigger
You now have a functional Dissonance comms system, but you are not yet transmitting anything.
Before you can speak to anyone, you need to add a "Voice Broadcast Trigger" script to our scene. This script can be placed anywhere, but for this tutorial, you should simply add it to the DissonanceSetup game object you created in step 1.
The "Voice Broadcast Trigger" controls when the user's microphone is being transmitted to other players, and to whom the user is talking. There are many configuration options on this script to provide more advanced control of under what sitations we should be transmitting and who to, but for this tutorial simply leave the settings at default.
The default broadcast trigger configuration includes two settings of note: 1. Transmit on Voice Activation. This means Dissonance will transmit whenever it detects that the user is speaking. 2. Transmit to the 'Global' chat room.
Step 3: Add a Receipt Trigger
Now you are talking into the 'Global' room automatically whenever you speak. However, you still can't hear anyone speaking. This is because you are not listening to the 'Global' room and so you are not receiving any of these transmissions.
To listen to the 'Global' room, add a "Voice Receipt Trigger" to the scene. Like the "Voice Broadcast Trigger", this script can be placed anywhere, but for this tutorial you should simply add it to the DissonanceSetup game object.
Again, leave this on the default configuration, which should have trigger activation disabled and be listening to the 'Global' chat room.
Congratulations, you have now added voice comms to your game! What to do next?