[UNITY] Фоновая музыка в игре с регулировкой громкости.
Вставка
- Опубліковано 6 вер 2024
- Привет, меня зову Никита Фридман и в этом видео я покажу один из вариантов реализации фоновой музыки в игре на Unity. Это видео я решил снять после комментария одного из подписчиков который столкнулся с такой проблемой и я решил, что было бы круто показать всем как можно сделать беcшовную музыку в игре, с возможностью регулировки громкости через слайдер и сохранением значения в PlayerPrefs.
Ссылки
──────────────────────────────
Наш Discord сервер: / discord
──────────────────────────────
Все мои ассеты для Unity: itch.io/c/1701...
──────────────────────────────
SoundVolumeController - drive.google.c...
──────────────────────────────
BackgroundInstanceController - drive.google.c...
──────────────────────────────
Проект из видео - drive.google.c...
──────────────────────────────
Ссылки на Оф.Документацию:
──────────────────────────────
DontDestroyOnLoad - docs.unity3d.c...
──────────────────────────────
PlayerPrefs - docs.unity3d.c...
──────────────────────────────
FindWithTag - docs.unity3d.c...
──────────────────────────────
Поддержка канала:
──────────────────────────────
Donation Alerts - www.donational...
──────────────────────────────
Patreon - / n_fridman
──────────────────────────────
Boosty - boosty.to/n.fr...
──────────────────────────────
Я удивлен что у такого канала, хоть и с небольшим, но монтажем и хорошим звуком, обьяснением так мало просмотров и подписчиков..
Спасибо)) Очень приятно, наверное это связано с тем, что я недавно канал создал. Да и видео пока маловато)
@@nfridman
Это тебе спасибо за работу)
Круто! Только я не вдуплял зачем вы писали такой громоздкий код в начале, а когда увидел сохранение громкости сразу встало всё на места. Спасибо! Только бы теперь не забыть что мне не нужно ничего сохранять...
Я сидел и решал эту же проблему до 6 часов утра. Спасибо тебе
Спасибо большое, Добрый человек, помог))
Чувак, офигеть ты объясняешь подробно и качественно. Просто респект!
Не совсем понял, почему this употребляешь... 😅
В то время, когда я записывал это видео я не знал о том для чего нужны префиксы _, m_ и т.д. Поэтому использовал this для того, чтобы сразу понять что используется переменная или поле.
Привет! Повторил все точь в точь,Но слайдер на второй сцене (в настройках), а компонент для создания звука находится на другой сцене (главное меню). В итоге текст с процентами не обновляется и сам звук меняется только тогда,когда из настроек переходишь в главное меню,но при этом сам слайдер выкидывается обратно на 100% (звук на той сцене остается на том же уровне,но при выходе обратно в меню музыка тоже сбрасывается на 100%)
так же выходит ошибка:
NullReferenceException: Object reference not set to an instance of an object
Assets.N.Fridman.SoundVolumeController.Scripts.SoundVolumeControllerComponent.LateUpdate () (at Assets/SomeScripts/SoundVolumeController/Scripts/SoundVolumeControllerComponent.cs:76)
Очень помог, огромное спасибо автору!
Да ладно, рад стараться. Кстати, я недавно неплохо так увеличил качество контента, буду благодарен если глянешь последние 2 видоса и в комментах напишешь свое мнение)
Снимай ещё видео, хотя бы иногда!🙏 Очень круто и полезно 👍
отличное видео, спасибо за ссылки в описании)
Рад стараться :)
Я хочу сделать так что типо после окончание трека которая играет сейчас начнет играть абсолютно случайный трек. И после окончание его снова случайный трек.как это сделать?
Спасибо огромное! Это то, что я искал!
Кто не понял как сделать перечеркнутый знак равно, просто напишите !=
Спасибо! Ты сделал то, на что у меня всегда не хватало времени)
Спасибо тебе огромное!)
а как сделать чтобы у меня на сценах была разная музыка но громкость одинаковая?
а как остановить музыку например в 3 сцене?
Респект. Очень помог!!!
Спасибо большое всё сработало.
Брооо знал бы ты как долго я еге искал, у индусов есть правда... я хочу понять а не просто скатать. Бро снимамй дальше с меня лайк и подписон
А можно сделать так, чтобы слайдер был на другой сцене?
У меня а проекте музыка начинает играть со сцены главное меню с мощностью 0.5 как в видео и когда я перехожу на другие сцены музыка играет с такой же мощностью, но как только я перехожу на сцену настроек где есть slider громкости, музыка сразу встает на 0 и когда я передвигаю slider в право на 1%, музыка начинает играть на всю мощьность хотя она должна играть так на 100%, а не на одном
Огромное тебе спасибо!
Спасибо огромное, помог
Ты просто лучший!!!
Топ, спасибо :3
что делать если выдаёт ошибку The name "textObj" does not exist in the current context ?
А где ты обучался программированию?
Кста ты не знаешь как сделать кнопки как в викторине, даны буквы и из них ты должен составить слово.? заранее спасибо за любой ответ
Напишите как можно менять, или отключать фоновую музыку переходя по сценам более подробно..
Появилась проблема. После добавления второго скрипта, у меня помимо музыки в игру стало заноситься всё меню и некоторые функции стали недоступны
Спасибо, ты гений
Спасибо, рад помочь :)
фух, целую тебя в губы спасибо огромное)
Лучше для этих целей настройки использовать scriptable object (гугли архитектура основанная на scriptable object) так выйдет намного легче работать (ну коммент наверно уже не актуален)
Комменты в которых меня просят что-то загуглить всегда актуальны)
У меня не работает сохранение
Пишет что нужно назначить аудиопеременную, что переменная аудио не была назначена
Мне указало 27 ошибок... Что не так?
Привет у меня вопрос а как например сделать так чтоб на другой сцене музыка не играла когда написал DontDestroy?
Привет. Можно у audio Source вызвать метод Stop() и музыка остановится.
@@nfridman В скрипте Просто я не совсем понял как?
У компонента AudioSource есть метод Stop(), который останавливает воспроизведение музыки. А вот где его вызывать это уже тебе решать.
Привет, спасибо большое за хорошую подачу! Но я столкнулся с проблемой, что при перезагрузке сцены, объект AudioSource пропадает из функции в кнопке (тоесть он перемещается в DontDestroyOnLoad и из-за этого его как-бы нету на сцене и кнопка не видит этот объект). Уже наверное 3ий день ищу ответ как получить доступ к объектам DontDestroyOnLoad....(((
Можно попробовать находить его кодом через FindGameObjectOfType. Ответ будет где-то в той степи)
@@nfridman Согласен, скорее всего так и есть) Но самое интересно, что когда оно находится в DontDestroyOnLoad, то вовсе пропадает со сцены. Вот это и заводит в заблуждение)
@@dynam1k145 привет, решил проблему? Просто я тоже с подобным столкнулся.
@@daster8301 привет, решил проблему?
Челл ты крут я тоже сейчас обучаюсь программированию! Можешь сказать как музыка из начала видео называется пжпжпжпжпжпжпжпжпжпжпжпжпжпжпжпжпж!!!!
У меня одного музыка начинает играть только после того как зашел в сцену где этот код
Скорее всего ты где-то напартачил)
Проверь теги и ссылки в Unity.
@@skaron9044 ниче он не напартачил, так и должно быть
Не заходя на сцену с этим кодом, объект, на котором и висит этот скрипт, просто не создастся, следовательно и на других сценах его не будет
я тысячный подписчик :}
Вааааууу, привет) Я не верил что то свершится)
Хм,столкнулся с такой проблемой.
Если зайти в настройки из главного меню,изменить настройку громкости на любое значение и далее перейти обратно в главное меню и зайти на сцену с левелом,то всё в порядке как и на видео,но если обратно вернуться на сцену с главным меню и перейти в настройки,то звук сбрасывается в 0...С чем это связанно?
Привет, так сразу сказать не могу. Но глянь код, может где-то присваиваешь volume значение 0. Если не поможет, то добро пожаловать в мой дс. Можем там созвониться и поковырять твой проект. :)
@@nfridman Добрый день,спасибо за ответ. Да...Надо бы ещё поразбираться в коде,обязательно зайду в дис,если не получиться исправить.
Исправил?
@@ZLOY_EHOT к сожалению нет
@@ZLOY_EHOT я исправил
А что если у меня несколько сцен, но в 3 надо чтобы эта переставала играть и включалась другая.
Кста когда просто в меню заходишь то не играет музыка, а начинает только при заходи в сцену со слайдером
Начет этого думать нужно, но у SceneManager-а есть событие activeSceneChanged, вроде так называлось и там можно проверять на какой сцене находится игрок. И в зависимости от этого включать ту или дургую музыку.
@@nfridman а можно подробнее про это?
Конечно
SceneManager: docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.html
SceneManager.activeSceneChanged: docs.unity3d.com/ScriptReference/SceneManagement.SceneManager-activeSceneChanged.html
А по событиям у меня уже был ролик, можешь попробовать посотреть. В качестве униакльного параметра имя сцены использовать. Код увы не напишу, так как он специфичный, да и времени у меня нету. В данный момент занимаюсь большим видео по разработке игры, скоро должно будет выйти.
Как поставить зачёркнутое равно?
!=, у меня тема просто их заменяет.
Как можно сделать чтобы музыка выключалось и включалось через кнопки? Причем чтобы они были на другой сцене
Сохраняешь значения в какой-нибудь компонент, который не удаляется при переходе между сценами, а при загрузке сцены с музыкой дергаешь с него значения. Либо если у тебя Audio source тоже в фоне, то на событиях можно сделать
@@nfridman Не могу понять, У меня нет компонента, который есть на двух сценах.
У меня открытый мир в игре, и я хочу создать миссию, где мой юнит респавнился в нужную точку, и начиналась миссия. Как это сделать?
Переброс игрока в другую точку элементарно через transform, если та же карта. Запуск миссии через систему событий, либо триггер. В твоем случае это уже детали, важно правильно организовать систему миссий и систему сохранений, если сразу лепишь открытый мир.
@@user-go7qv2yc6z Я уверен что он тебя не понял
А как остановить музыку при проигрыше к примеру можешь подсказать?
Попробуй этот скрипт. Хз работает или нет
if (Application.loadedLevel == 11){ /*11 это пример*/
GetComponent().Stop();
}
привет, скинь ссылку на готовые скрипты , пожалуйста
Привет, они есть в описании.
Соре я токсик спасибо за видео
Привет, помоги пж, нечего не работает
А как ставить не равно? Хахаха
!=
РРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРР
Cкинь готовый код)))
Ссылки в описании.
я немного в тебе разочарован..
Видос старый :)
Сейчас материал в твоих видео лучше, а это значит ты развиваешься!)
В общем удачи
А что делать если при переходе на 1 уровень музыки нет (
Unity даёт предупреждение - "DontDestroyOnLoad only works for root GameObjects or components on root GameObjects.
UnityEngine.StackTraceUtility:ExtractStackTrace ()"
Ты пытаешься вынести не корневой объект сенны. Don't destroy on load не работает с вложенными объектами
@@nfridman Спасибо большое !!! Все заработало !