Как сделать чтоб при нажатии на кнопку появлялся звук

Добавил пользователь Дмитрий К.
Обновлено: 19.09.2024

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); >>

void Start()
image = GetComponent ();
>

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), по-хорошему нужно использовать аудио менеджер, также он предполагает, что звук вначале всегда включен, чтобы сохранять состояние звука необходимо использовать систему сохранений.

Есть причина, по которой игры делают акцент на аудио; это очень важно, чтобы добавить эстетическую ценность в игре. С самого первого понга можно услышать гудки и удары мяча, попеременно попадающих на весла. В то время это был действительно простой образец с короткими прямоугольными волнами, но что еще можно пожелать от дедушки всех видеоигр?

В реальной жизни многие вещи влияют на то, как вы воспринимаете звук; скорость объекта, тип сценария и направление его движения.

Существует ряд факторов, которые могут создать ненужную нагрузку на наш двигатель. Вместо этого мы пытаемся создать представление о том, как будет звучать наш звук в нашей игре, и строить вокруг этого. Это становится особенно заметным в 3D играх, где есть 3 оси, с которыми нужно иметь дело.

В Unity у нас есть специальные компоненты для восприятия и воспроизведения звука. Эти компоненты работают вместе, чтобы создать правдоподобную звуковую систему, которая кажется естественной для игры.

Unity предоставляет нам множество полезных инструментов и эффектов, таких как реверберация, эффект Доплера, микширование и эффекты в реальном времени и т. Д. Мы узнаем об этом в наших последующих главах.

Аудио Компоненты

В этом разделе мы узнаем о 3 основных компонентах, связанных со звуком в Unity.

AudioSource

Компонент AudioSource является основным компонентом, который вы присоединяете к GameObject, чтобы он воспроизводил звук. Он будет воспроизводить аудиоклип при запуске через микшер, через код или по умолчанию при пробуждении.

AudioClip — это просто звуковой файл, который загружается в AudioSource. Это может быть любой стандартный аудиофайл, например .mp3, .wav и т. Д. AudioClip также является компонентом внутри себя.

Источник звука

AudioListener

AudioListener — это компонент, который слушает все аудио, воспроизводимое в сцене, и передает его на динамики компьютера. Это действует как уши игры. Все аудио, которые вы слышите, находится в перспективе расположения этого AudioListener. Только один AudioListener должен быть в сцене, чтобы он функционировал должным образом. По умолчанию к основной камере подключен слушатель. Слушатель не имеет открытых свойств, о которых дизайнер хотел бы позаботиться.

Аудио слушатель

Аудио Фильтры

Выход AudioSource или прием AudioListener могут быть изменены с помощью Audio Filters. Это конкретные компоненты, которые могут изменять реверберацию, хорус, фильтрацию и т. Д. Каждый конкретный фильтр представляет собой свой собственный компонент с доступными значениями для настройки его звучания.

Аудио Фильтры

Воспроизведение звука

Давайте попробуем сделать кнопку, которая воспроизводит звук при нажатии. Для начала мы создадим спрайт Circle и сделаем его красным.

Теперь давайте подключим аудиоисточник к этому спрайту.

Чтобы объект воспроизводил звук, мы должны дать ему один. Давайте использовать этот звуковой эффект для наших целей.

Загрузите звуковой эффект и перетащите его в Активы.

звуковой эффект

Когда Unity импортирует этот актив в виде звукового файла, он автоматически преобразуется в аудиоклип . Поэтому вы можете перетащить этот аудиоклип из ресурсов непосредственно в слот аудиоклипа в аудиоисточнике нашего спрайта.

AudioClip

Играть на Awake

BellSound

Поскольку наш аудиоисточник управляется с помощью кода, мы сначала хотим получить ссылку на него. Мы будем использовать метод GetComponent, как и раньше.

Теперь давайте настроим метод обнаружения объекта, по которому щелкают. MonoBehaviour дает нам именно тот метод, который нам нужен, с именем OnMouseDown. Метод вызывается всякий раз, когда мышь щелкает в диапазоне коллайдера этого gameObject.

Поскольку мы еще не прикрепили коллайдер к нашей кнопке, давайте сделаем это сейчас.

прикрепил коллайдер

Нам не понадобится Rigidbody для этого; нам также не нужен доступ к этому коллайдеру по коду. Это просто должно быть там, чтобы метод работал.

Давайте проверим метод и посмотрим, работает ли он. Напишите следующий код в своем скрипте и прикрепите его к кнопке.

Вы сейчас в одном шаге от воспроизведения звука. Все, что вам нужно сделать сейчас, это вызвать метод Play в экземпляре Audio Source.

Сохраните ваш скрипт и запустите его в игре. Нажмите на кнопку, и вы должны услышать звук!

Проигрывание звука при нажатии на кнопку - ссылку

Задача была ясна, и не была сложной я приступил к её реализации, но так как вариантов для воспроизведении звука по клику много я сидел и думал как сделать так что бы заказчику было удобно менять мелодию и добавлять новые кнопки с другими звуками и пришел к такому решению о котором решил поделится с вами!

Для работы данного решение не нужно не каких посторонних плагинов и больших скриптов
Редактирование и добавление кнопок на сайт очень просто и не потребует больших знай в программирование

Установка

Просто скопируйте код кнопки ниже и вставьте его в нужное место

Как можно видеть в коде выше нам по сути нужна только вот эта часть

она и отвечает за проигрывание мелодии

Для того что бы сделать запрет на переход по ссылки если вдруг вы используете этот пример для всплывающих окошек или ещё чего-то вам просто нужно добавить к функции onclick вот эту строчку return false; что бы получилось вот так

Полная версия ссылки без перехода на другую страницу

Полная версия ссылки c перехода на другую страницу

Думаю что всё очень просто и понятно но если есть вопросы пишите их в комментариях

Комментарии

Автор

Похожие материалы

Реклама

Дополнение

Демонстрация результата либо показана на отдельной странице, либо просто показана на скриншоте. В исключительных случаях, когда нет возможности показать работу даже на скриншоте, используется развернутое описание. Описание есть у каждого материала, этот пункт важен, но иногда описание бывает косвенным, пустословным. Это относится к тем материалам, которым не нужна детальная инструкция.

Установка скриптов – иногда не быстрый процесс. На страницах с описаниями всегда указывается место, куда нужно вставить приложенный код. Если требуется редактирование настроек в Панели управления, то об этом тоже пишется. Если никакой информации об установке нет, значит, код можно ставить в любом месте на сайте, преимущественно в сайдбаре. Прежде чем редактировать страницы, настоятельно рекомендуем делать резервное копирование шаблонов. Этот совет по большей части для новичков.

В процессе разработки игр на заказ я встречаюсь с примерно одним и тем же сценарием из проекта в проект. Заказчик пишет требования на механику игры, на различные окна и взаимодействия между ними. Я эти требования реализую, реализую, добавляю всё больше и больше окон. Окон становится ещё всё больше и больше, и элементов на этих окнах становится всё больше и больше. И в один прекрасный момент подвозят звуки.

В играх принято, что клик по каждой кнопке должен сопровождаться соответствующим звуком. Но кнопки в Unity UI об этом не знают. Компонент “Button” не имеет такого параметра как “Click Sound” или подобного. Приходится реализовывать самостоятельно.

game_menu

Реализовать звук клика не сложно, и есть много различных способов. Вот некоторые из них.

Но который я встречаю очень часто, когда мне достаётся чужой код по наследству. Это создать статический метод “PlayClick” в каком-нибудь “SoundsManager”, реализовать его и в каждом обработчике события нажатия кнопки добавлять вызов этого метода.

Надеюсь, что вам не нужно объяснять, почему так не стоит делать.

gekkon-nudavay_113566903_orig_

Тот же менеджер (SoundsManager) с тем же методом (PlayClick), но теперь метод не статический. А событию “OnClick” в редакторе назначаются два обработчика – первый вызывает метод, отвечающий за логику работы, а второй вызывает метод, проигрывающий звук нажатия на кнопку.

Два обработчика события OnClick

Это решение на много лучше предыдущего, так как разделяет логику работы кнопок и проигрывания звуков по разным обработчикам событий и не захламляет код. Но имеет и свои недостатки.

Когда у нас в сцене несколько сотен кнопок, нужно будет все их найти, вручную добавить каждой обработчик, назначить объект-менеджер и выбрать метод проигрывания звука.

Да, можно снова найти все кнопки на сцене, пройтись по ним и проверить всё вручную. Это не займет целой недели или целого дня. И даже часа не займет. И я бы так и делал, если бы задача была не типовая, единичная, не повторялась бы регулярно.

Я же просто написал свой компонент “ButtonClickSound”. Он настолько простой, что можно весь код выложить ниже.

Компонент добавляется на любую кнопку, которой нужен звук при нажатии, назначаются два параметра: источник звука (AudioSource), который будет проигрывать звук, и сам клип звука (AudioClip).

ButtonClickSound добавляет любой кнопке звук нажатия.

Это решение более универсальное, так как разным кнопкам можно назначать разные звуки и даже при желании разные источники звуков (AudioSource). Но не решает проблему рутины, поиска кнопок в сцене и ручной работы с каждой из кнопок.

А вот с редактором всё на много удобнее. Unity позволяет писать функционал, расширяющий стандартный редактор, и оперировать с объектами в иерархии. Это даёт возможность запросить все кнопки на сцене и автоматически “навесить” им компонент и его параметры.

У меня есть такой редактор, и я использую его в каждом проекте. Написал его для себя. Позволяет быстро назначить каждой кнопке соответствующий звук. При необходимости можно посмотреть картинку кнопки или текст, а так же полный путь до кнопки в сцене для того, чтобы понять, что это за кнопка, не закрывая редактор.

Редактор выложен в общественное пользование, так что пользуйтесь: Button Sounds Editor for Unity

При наборе текста на клавиатуре некоторые пользователи испытывают дискомфорт из-за посторонних звуков. Они сопровождают буквально каждое нажатие и, как кажется, отключаются только при выставлении нижнего порога громкости. При этом есть более рациональный вариант, как отключить звук клавиатуры на операционной системе Виндовс 10, и его тоже стоит иметь в виду.

За что отвечает звук?

На самом деле, в случае с физической клавой сигнал сопровождает далеко не каждое нажатие.

screenshot_1

Это касается лишь отдельных кнопок, для которых звуковое сопровождение является напоминанием смены режима:

На заметку. Также звуковым сигналом сопровождается включение и отключение функции залипания клавиш.

Совершенно иначе обстоит вопрос, когда мы говорим о сигнале при нажатии клавиш экранной клавиатуры. Здесь звук становится необходимым средством, которое делает набор текста таким же удобным, как в случае с физическим устройством ввода. Впрочем, его тоже можно отключить.

screenshot_2

Как включить или убрать звук клавиатуры Windows 10

Принцип настройки сигнала отличается в зависимости от того, о какой клавиатуре идет речь. Если это физическое устройство ввода, а звуковое сопровождение появляется только при нажатии на определенные кнопки, то необходимо действовать следующим образом:

screenshot_3

screenshot_4

screenshot_5

screenshot_6

screenshot_7

screenshot_8

Если в настройках ввода нет указанных пунктов, то придется обратиться к помощи редактора реестра. Для него действует своя инструкция:

screenshot_9

  • Перейдите по пути: HKEY_CURRENT_USER\SOFTWARE\Microsoft\TabletTip\1.7.

screenshot_10

screenshot_11

Как можно отключить звук системных уведомлений от Windows 10, 2 способа

Как на ноутбуке с ОМ Windows 10 отключить встроенную клавиатуру – 4 способа

Как в ОС Windows 10 изменить звук включения или установить другую мелодию

Как при запуске Windows 10 убрать экранную клавиатуру – способы отключения

Как включить экранную клавиатуру в ОС Windows 10 и возможные проблемы

Как поменять клавиатуру на Андроиде Самсунг и ее пошаговая настройка

Как восстановить контакты, удаленные с телефона или SIM-карты


Снимаю вопрос-решился применить AOMEI Partition Assistant, не дожидаясь Вашего ответа,автор,и вышло удачно-программа удалила раздел независимо от его статуса.Советую всем озабоченным такой же проблемой,просто и быстро,Исаак.

Спасибо автору за содержательную статью. Все по делу и понятно.иКак раз искала подходящий провайдер по приемлемым ценам. Особенно порадавало то, что указали цены и ссылок на регистрацию.

Спасибо вам огромное! Кажется, помогло! У меня на HP видеокарта Radeon. Помогло отключение Vari-Bright. Хотя на моем ноуте было немного по-другому. AMD Radeon Software ---> Настройки ---> Дисплей ---> Vari-Bright ---> Отключить. Вот. Вдруг кому пригодится)

Здравствуйте. Да, верно подмечено. Хотя пользоваетли Huawei уже должны быть готовы к разным неожиданностям, которые спровоцированы запретом со стороны Google. Это и пропавшие сервисы Google и проблемная операционка. Благодарим за фидбек и за то, что делитесь собственным опытом, который поможет остальным посетителям сайта.

все хорошо, все замечательно, но вы ни где не сказали, что на Huawei/Honor голый Android не устанавливается ни как, и владелец пользуется EMUI/Magic UI все время пользованием смартфоном данных производителей, а то мало ли какой умник купит себе хуавей, а потом будет ныть, что "хуавей фигня, их нельзя прошить, я раньше не знал, а как купил и узнал сразу разочаровался."

здравствуйте, можете сказать какой бот изображен на втором скрине " удаление неактивных подписчиков"?

Автор, Вы о чем написали в начале статьи: Все действия займут 5-7 минут, не больше. Погуглите интернет: люди неделями не могут добавить телефон, а техподдержка в Дискорде пишет стандартные отписки.

На данный момент Discord является самым популярным приложением.И не без причины: 1)Самое большое игровое комньюнити как в РФ,так и за рубежом; 2)Существуют разные игровые и учебные сообщества как в РФ,так и за рубежом; 3)Кооперативный режим прохождения игр - это когда в команде из нескольких человек можешь проходить кооперативные игры. Это также подходит и для учебы. Но в данном приложении Discord не обойтись без минусов: 1)Разнообразный коллектив который не всегда подстать себе найдешь; 2)В приложении дискорд на жалобы сквозь пальцы смотрят.могут и не отреагировать; 3)Конфиденциальность в общении не в почёте. 4)Странное комньюнити которое как "стая пчел". 5)На жалобы техобслуживание долго не реагирует.но попытаться можно. 6)Само общество дискорда может окунуть тебя в грязь.Если им что-то не нравится.У них своё представление о том или ином человеке.Они живут в своём собственном мирке под названием Discord. 7)Есть определенные "особые" личности которым всё непочем.и они суются куда не следует.

Читайте также: