TTS Events
Inherit from EasyManager.cs
using EasyCodeForVivox;
public class VivoxManager : EasyManager
{
}
Inject EasyEvents
using EasyCodeForVivox.Events;
using UnityEngine;
using Zenject;
public class VivoxEvents : MonoBehaviour
{
EasyEvents _events;
[Inject]
private void Initialize(EasyEvents events)
{
_events = events;
}
}
Dynamic Events
Make sure Dynamic Events are enabled

How to Subscribe to TextToSpeech Events in EasyCode
EasyManager
// Text-To-Speech Event Callbacks
protected override void OnTTSMessageAdded(ITTSMessageQueueEventArgs ttsArgs)
{
base.OnTTSMessageAdded(ttsArgs);
}
protected override void OnTTSMessageRemoved(ITTSMessageQueueEventArgs ttsArgs)
{
base.OnTTSMessageRemoved(ttsArgs);
}
protected override void OnTTSMessageUpdated(ITTSMessageQueueEventArgs ttsArgs)
{
base.OnTTSMessageUpdated(ttsArgs);
}
EasyEvents
public void SubscribeToTTAEvents()
{
_events.TTSMessageAdded += OnTTSMessageAdded;
_events.TTSMessageRemoved += OnTTSMessageRemoved;
_events.TTSMessageUpdated += OnTTSMessageUpdated;
}
public void UnsubscribeFromTTSEvents()
{
_events.TTSMessageAdded -= OnTTSMessageAdded;
_events.TTSMessageRemoved -= OnTTSMessageRemoved;
_events.TTSMessageUpdated -= OnTTSMessageUpdated;
}
protected virtual void OnTTSMessageAdded(ITTSMessageQueueEventArgs ttsArgs)
{
Debug.Log($"TTS Message Has Been Added : {ttsArgs.Message.Text}");
}
protected virtual void OnTTSMessageRemoved(ITTSMessageQueueEventArgs ttsArgs)
{
Debug.Log($"TTS Message Has Been Removed : {ttsArgs.Message.Text}");
}
protected virtual void OnTTSMessageUpdated(ITTSMessageQueueEventArgs ttsArgs)
{
Debug.Log($"TTS Message Has Been Updated : {ttsArgs.Message.Text}");
}
Dynamic Events
Make sure the parameter in your method matches the event type. See what parameter is required for each User Event here. Dynamic events will dynamically invoke your method at runtime on every game object that has a dynamic event attribute. Because of this there is no need to Subscribe/Unsubscribe from events with the usual +=/-=
[TextToSpeechEvent(TextToSpeechStatus.TTSMessageAdded)]
private void OnTTSMessageAdded(ITTSMessageQueueEventArgs ttsArgs)
{
Debug.Log($"TTS Message Has Been Added : {ttsArgs.Message.Text}");
}
[TextToSpeechEvent(TextToSpeechStatus.TTSMessageRemoved)]
private void OnTTSMessageRemoved(ITTSMessageQueueEventArgs ttsArgs)
{
Debug.Log($"TTS Message Has Been Removed : {ttsArgs.Message.Text}");
}
[TextToSpeechEvent(TextToSpeechStatus.TTSMessageUpdated)]
private void OnTTSMessageUpdated(ITTSMessageQueueEventArgs ttsArgs)
{
Debug.Log($"TTS Message Has Been Updated : {ttsArgs.Message.Text}");
}
Dynamic Async Events
Make sure the parameter in your method matches the event type. See what parameter is required for each User Event here. Dynamic events will dynamically invoke your method at runtime on every game object that has a dynamic event attribute. Because of this there is no need to Subscribe/Unsubscribe from events with the usual +=/-=
More information on the methods called in any async method can be found here. Unity Gaming Services Examples. They are direct copies from Unity's docs. These are just examples and don't mimic real world use cases
[TextToSpeechEventAsync(TextToSpeechStatus.TTSMessageAdded)]
private async void OnTTSMessageAddedAsync(ITTSMessageQueueEventArgs ttsArgs)
{
Debug.Log($"TTS Message Has Been Added : {ttsArgs.Message.Text}");
await SavePlayerData();
}
[TextToSpeechEventAsync(TextToSpeechStatus.TTSMessageRemoved)]
private async void OnTTSMessageRemovedAsync(ITTSMessageQueueEventArgs ttsArgs)
{
Debug.Log($"TTS Message Has Been Removed : {ttsArgs.Message.Text}");
await SavePlayerData();
}
[TextToSpeechEventAsync(TextToSpeechStatus.TTSMessageUpdated)]
private async void OnTTSMessageUpdatedAsync(ITTSMessageQueueEventArgs ttsArgs)
{
Debug.Log($"TTS Message Has Been Updated : {ttsArgs.Message.Text}");
await SavePlayerData();
}
Last updated
Was this helpful?