Class LocalizeAudioClipEvent
Component that can be used to Localize an AudioClip asset. Provides an update event OnUpdateAsset that can be used to automatically update the clip whenever the SelectedLocale or AssetReference changes.
Inheritance
LocalizeAudioClipEvent
Inherited Members
Namespace: UnityEngine.Localization.Components
Syntax
[AddComponentMenu("Localization/Asset/Localize Audio Clip Event")]
public class LocalizeAudioClipEvent : LocalizedAssetEvent<AudioClip, LocalizedAudioClip, UnityEventAudioClip>
Remarks
This component can also be added through the Localize menu item in the Audio Source context menu. Adding it this way will also automatically configure the Update Asset events to update the Audio Source.
Examples
This example shows how a Localized Audio Control panel could be created. The example show how it is possible to switch between different Localized Audio clips.
#if MODULE_AUDIO
using UnityEngine;
using UnityEngine.Localization;
using UnityEngine.Localization.Components;
public class LocalizedAudioChanger : MonoBehaviour
{
public LocalizeAudioClipEvent localizeAudioClipEvent;
public LocalizedAudioClip[] clips;
public AudioSource audioSource;
int currentClip = 0;
private void Start()
{
// Start playing the first AudioClip.
ChangeAudio(clips[currentClip]);
}
private void OnGUI()
{
GUILayout.BeginHorizontal();
if (GUILayout.Button("Previous"))
{
if (currentClip == 0)
currentClip = clips.Length - 1;
else
currentClip--;
ChangeAudio(clips[currentClip]);
}
// Show the current clip that is playing
GUILayout.Label(audioSource.clip?.name);
if (GUILayout.Button("Next"))
{
if (currentClip == clips.Length - 1)
currentClip = 0;
else
currentClip++;
ChangeAudio(clips[currentClip]);
}
GUILayout.EndHorizontal();
}
void ChangeAudio(LocalizedAudioClip clip)
{
// When we assign a new AssetReference the system will automatically load the new Audio clip and then call the AssetChanged event.
localizeAudioClipEvent.AssetReference = clip;
}
}
#endif