Создаёшь в иерархии кнопку (UI -> Button), удаляешь дочерний объект Text, у объекта Button в компоненте Image ставишь Source Image спрайт с включённым звуком, Image Type меняешь на Simple, добавляешь этот скрипт на объект Button:
Код
using UnityEngine;
using UnityEngine.UI;
public class AudioButton : MonoBehaviour
{
public Sprite enableSprite;
public Sprite disableSprite;
bool audioEnabled = true;
public bool AudioEnabled { get { return audioEnabled; } set { SetAudio(value); } }
Image image;
void Start()
{
image = GetComponent<Image>();
}
void SetAudio(bool enabled)
{
if (enabled)
{
AudioListener.volume = 1f;
image.sprite = enableSprite;
}
else
{
AudioListener.volume = 0f;
image.sprite = disableSprite;
}
audioEnabled = enabled;
}
public void SwitchAudio()
{
AudioEnabled = !AudioEnabled;
}
}
В этом скрипте ставишь в Enable Sprite спрайт включённого звука, в Disable Sprite - выключенного. В компоненте Button нажимаешь внизу плюсик, перетаскиваешь объект Button где кружок с точкой и выбираешь функцию AudioButton.SwitchAudio.
Скрипт простой и только отключает звук у слушателя (AudioListener), по-хорошему нужно использовать аудио менеджер, также он предполагает, что звук вначале всегда включен, чтобы сохранять состояние звука необходимо использовать систему сохранений.