[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...
    ──────────────────────────────

КОМЕНТАРІ • 95

  • @Masail_Ivanich
    @Masail_Ivanich 4 роки тому +19

    Я удивлен что у такого канала, хоть и с небольшим, но монтажем и хорошим звуком, обьяснением так мало просмотров и подписчиков..

    • @nfridman
      @nfridman  4 роки тому +2

      Спасибо)) Очень приятно, наверное это связано с тем, что я недавно канал создал. Да и видео пока маловато)

    • @Masail_Ivanich
      @Masail_Ivanich 4 роки тому

      @@nfridman
      Это тебе спасибо за работу)

  • @EternalHardWorker
    @EternalHardWorker Місяць тому

    Круто! Только я не вдуплял зачем вы писали такой громоздкий код в начале, а когда увидел сохранение громкости сразу встало всё на места. Спасибо! Только бы теперь не забыть что мне не нужно ничего сохранять...

  • @nadeshiko4508
    @nadeshiko4508 11 місяців тому +2

    Я сидел и решал эту же проблему до 6 часов утра. Спасибо тебе

  • @airusgamedev-2522
    @airusgamedev-2522 3 роки тому +5

    Спасибо большое, Добрый человек, помог))

  • @PLoveCode
    @PLoveCode 2 роки тому +1

    Чувак, офигеть ты объясняешь подробно и качественно. Просто респект!
    Не совсем понял, почему this употребляешь... 😅

    • @nfridman
      @nfridman  2 роки тому

      В то время, когда я записывал это видео я не знал о том для чего нужны префиксы _, m_ и т.д. Поэтому использовал this для того, чтобы сразу понять что используется переменная или поле.

  • @DuckDuckProject
    @DuckDuckProject 7 місяців тому +2

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

  • @maksim4077
    @maksim4077 3 роки тому +3

    Очень помог, огромное спасибо автору!

    • @nfridman
      @nfridman  3 роки тому

      Да ладно, рад стараться. Кстати, я недавно неплохо так увеличил качество контента, буду благодарен если глянешь последние 2 видоса и в комментах напишешь свое мнение)

  • @aglittertool5184
    @aglittertool5184 8 місяців тому

    Снимай ещё видео, хотя бы иногда!🙏 Очень круто и полезно 👍

  • @kenny_mccorm1ck
    @kenny_mccorm1ck 4 роки тому +2

    отличное видео, спасибо за ссылки в описании)

    • @nfridman
      @nfridman  4 роки тому

      Рад стараться :)

  • @LOLOGyt
    @LOLOGyt 2 роки тому +2

    Я хочу сделать так что типо после окончание трека которая играет сейчас начнет играть абсолютно случайный трек. И после окончание его снова случайный трек.как это сделать?

  • @oliver3272
    @oliver3272 Рік тому

    Спасибо огромное! Это то, что я искал!

  • @Molodoy_Ekenzy
    @Molodoy_Ekenzy 6 місяців тому +1

    Кто не понял как сделать перечеркнутый знак равно, просто напишите !=

    • @nfridman
      @nfridman  6 місяців тому

      Спасибо! Ты сделал то, на что у меня всегда не хватало времени)

  • @jackripper7578
    @jackripper7578 3 роки тому +1

    Спасибо тебе огромное!)

  • @Mis_berdanka
    @Mis_berdanka 10 місяців тому +1

    а как сделать чтобы у меня на сценах была разная музыка но громкость одинаковая?

  • @thefrezergames
    @thefrezergames 2 роки тому +1

    а как остановить музыку например в 3 сцене?

  • @user-kx9de8hq9y
    @user-kx9de8hq9y Рік тому

    Респект. Очень помог!!!

  • @extroedlive
    @extroedlive 10 місяців тому

    Спасибо большое всё сработало.

  • @bonfire5388
    @bonfire5388 3 роки тому

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

  • @BreAn1707
    @BreAn1707 3 роки тому +2

    А можно сделать так, чтобы слайдер был на другой сцене?

  • @user-ip7pq2kh5q
    @user-ip7pq2kh5q 2 роки тому

    У меня а проекте музыка начинает играть со сцены главное меню с мощностью 0.5 как в видео и когда я перехожу на другие сцены музыка играет с такой же мощностью, но как только я перехожу на сцену настроек где есть slider громкости, музыка сразу встает на 0 и когда я передвигаю slider в право на 1%, музыка начинает играть на всю мощьность хотя она должна играть так на 100%, а не на одном

  • @venmen5282
    @venmen5282 2 роки тому

    Огромное тебе спасибо!

  • @H0rex-r6y
    @H0rex-r6y Рік тому

    Спасибо огромное, помог

  • @leemics1993
    @leemics1993 2 роки тому

    Ты просто лучший!!!

  • @BANANA-fg3vw
    @BANANA-fg3vw 4 роки тому

    Топ, спасибо :3

  • @KybGD
    @KybGD Рік тому

    что делать если выдаёт ошибку The name "textObj" does not exist in the current context ?

  • @monsterclash6790
    @monsterclash6790 2 роки тому +1

    А где ты обучался программированию?

  • @bonfire5388
    @bonfire5388 3 роки тому

    Кста ты не знаешь как сделать кнопки как в викторине, даны буквы и из них ты должен составить слово.? заранее спасибо за любой ответ

  • @xfactor4084
    @xfactor4084 Рік тому

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

  • @koddione3972
    @koddione3972 2 роки тому

    Появилась проблема. После добавления второго скрипта, у меня помимо музыки в игру стало заноситься всё меню и некоторые функции стали недоступны

  • @MultiRaydoN1
    @MultiRaydoN1 4 роки тому

    Спасибо, ты гений

    • @nfridman
      @nfridman  4 роки тому

      Спасибо, рад помочь :)

  • @user-uf5kg4ji9w
    @user-uf5kg4ji9w Рік тому

    фух, целую тебя в губы спасибо огромное)

  • @user-ou5qg1kc9x
    @user-ou5qg1kc9x 3 роки тому +1

    Лучше для этих целей настройки использовать scriptable object (гугли архитектура основанная на scriptable object) так выйдет намного легче работать (ну коммент наверно уже не актуален)

    • @nfridman
      @nfridman  3 роки тому +1

      Комменты в которых меня просят что-то загуглить всегда актуальны)

  • @user-nf5rl6vb9z
    @user-nf5rl6vb9z 2 роки тому

    У меня не работает сохранение
    Пишет что нужно назначить аудиопеременную, что переменная аудио не была назначена

  • @bodutop
    @bodutop 2 роки тому +1

    Мне указало 27 ошибок... Что не так?

  • @denarser7741
    @denarser7741 3 роки тому +1

    Привет у меня вопрос а как например сделать так чтоб на другой сцене музыка не играла когда написал DontDestroy?

    • @nfridman
      @nfridman  3 роки тому

      Привет. Можно у audio Source вызвать метод Stop() и музыка остановится.

    • @denarser7741
      @denarser7741 3 роки тому

      @@nfridman В скрипте Просто я не совсем понял как?

    • @nfridman
      @nfridman  3 роки тому

      У компонента AudioSource есть метод Stop(), который останавливает воспроизведение музыки. А вот где его вызывать это уже тебе решать.

  • @dynam1k145
    @dynam1k145 2 роки тому +1

    Привет, спасибо большое за хорошую подачу! Но я столкнулся с проблемой, что при перезагрузке сцены, объект AudioSource пропадает из функции в кнопке (тоесть он перемещается в DontDestroyOnLoad и из-за этого его как-бы нету на сцене и кнопка не видит этот объект). Уже наверное 3ий день ищу ответ как получить доступ к объектам DontDestroyOnLoad....(((

    • @nfridman
      @nfridman  2 роки тому

      Можно попробовать находить его кодом через FindGameObjectOfType. Ответ будет где-то в той степи)

    • @dynam1k145
      @dynam1k145 2 роки тому +1

      @@nfridman Согласен, скорее всего так и есть) Но самое интересно, что когда оно находится в DontDestroyOnLoad, то вовсе пропадает со сцены. Вот это и заводит в заблуждение)

    • @daster8301
      @daster8301 2 роки тому +1

      @@dynam1k145 привет, решил проблему? Просто я тоже с подобным столкнулся.

    • @ReyKapcher
      @ReyKapcher Рік тому

      @@daster8301 привет, решил проблему?

  • @lisstoli0082
    @lisstoli0082 Рік тому

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

  • @Kiwi-fk4gj
    @Kiwi-fk4gj 3 роки тому

    У меня одного музыка начинает играть только после того как зашел в сцену где этот код

    • @skaron9044
      @skaron9044 3 роки тому

      Скорее всего ты где-то напартачил)
      Проверь теги и ссылки в Unity.

    • @_mirai
      @_mirai 2 роки тому

      @@skaron9044 ниче он не напартачил, так и должно быть
      Не заходя на сцену с этим кодом, объект, на котором и висит этот скрипт, просто не создастся, следовательно и на других сценах его не будет

  • @developerklokter1274
    @developerklokter1274 2 роки тому

    я тысячный подписчик :}

    • @nfridman
      @nfridman  2 роки тому

      Вааааууу, привет) Я не верил что то свершится)

  • @BRO_OK1YN
    @BRO_OK1YN 4 роки тому

    Хм,столкнулся с такой проблемой.
    Если зайти в настройки из главного меню,изменить настройку громкости на любое значение и далее перейти обратно в главное меню и зайти на сцену с левелом,то всё в порядке как и на видео,но если обратно вернуться на сцену с главным меню и перейти в настройки,то звук сбрасывается в 0...С чем это связанно?

    • @nfridman
      @nfridman  4 роки тому

      Привет, так сразу сказать не могу. Но глянь код, может где-то присваиваешь volume значение 0. Если не поможет, то добро пожаловать в мой дс. Можем там созвониться и поковырять твой проект. :)

    • @BRO_OK1YN
      @BRO_OK1YN 4 роки тому

      @@nfridman Добрый день,спасибо за ответ. Да...Надо бы ещё поразбираться в коде,обязательно зайду в дис,если не получиться исправить.

    • @ZLOY_EHOT
      @ZLOY_EHOT 3 роки тому

      Исправил?

    • @BRO_OK1YN
      @BRO_OK1YN 3 роки тому

      @@ZLOY_EHOT к сожалению нет

    • @brainet.
      @brainet. 3 роки тому

      @@ZLOY_EHOT я исправил

  • @varaksanex
    @varaksanex 3 роки тому

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

    • @nfridman
      @nfridman  3 роки тому

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

    • @user-xg8st8cx9f
      @user-xg8st8cx9f 3 роки тому

      @@nfridman а можно подробнее про это?

    • @nfridman
      @nfridman  3 роки тому

      Конечно
      SceneManager: docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.html
      SceneManager.activeSceneChanged: docs.unity3d.com/ScriptReference/SceneManagement.SceneManager-activeSceneChanged.html
      А по событиям у меня уже был ролик, можешь попробовать посотреть. В качестве униакльного параметра имя сцены использовать. Код увы не напишу, так как он специфичный, да и времени у меня нету. В данный момент занимаюсь большим видео по разработке игры, скоро должно будет выйти.

  • @Alexandr_Partikevich
    @Alexandr_Partikevich 2 роки тому +1

    Как поставить зачёркнутое равно?

    • @nfridman
      @nfridman  2 роки тому +1

      !=, у меня тема просто их заменяет.

  • @bonfire5388
    @bonfire5388 3 роки тому

    Как можно сделать чтобы музыка выключалось и включалось через кнопки? Причем чтобы они были на другой сцене

    • @nfridman
      @nfridman  3 роки тому

      Сохраняешь значения в какой-нибудь компонент, который не удаляется при переходе между сценами, а при загрузке сцены с музыкой дергаешь с него значения. Либо если у тебя Audio source тоже в фоне, то на событиях можно сделать

    • @bonfire5388
      @bonfire5388 3 роки тому

      @@nfridman Не могу понять, У меня нет компонента, который есть на двух сценах.

  • @skolgenmm7313
    @skolgenmm7313 3 роки тому

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

    • @user-go7qv2yc6z
      @user-go7qv2yc6z 3 роки тому

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

    • @user-me4fx2jv3m
      @user-me4fx2jv3m 3 роки тому

      @@user-go7qv2yc6z Я уверен что он тебя не понял

  • @user-du6ow6yq4q
    @user-du6ow6yq4q 3 роки тому +2

    А как остановить музыку при проигрыше к примеру можешь подсказать?

    • @bacmartin
      @bacmartin 2 роки тому

      Попробуй этот скрипт. Хз работает или нет
      if (Application.loadedLevel == 11){ /*11 это пример*/
      GetComponent().Stop();
      }

  • @mr_scalise
    @mr_scalise 3 роки тому

    привет, скинь ссылку на готовые скрипты , пожалуйста

    • @nfridman
      @nfridman  3 роки тому

      Привет, они есть в описании.

  • @vladislav483
    @vladislav483 3 роки тому

    Соре я токсик спасибо за видео

  • @mr_scalise
    @mr_scalise 3 роки тому

    Привет, помоги пж, нечего не работает

  • @globgalab141
    @globgalab141 2 роки тому +1

    А как ставить не равно? Хахаха

  • @vladislav483
    @vladislav483 3 роки тому

    РРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРРР

  • @XAE--et7qh
    @XAE--et7qh 4 роки тому

    Cкинь готовый код)))

    • @nfridman
      @nfridman  4 роки тому

      Ссылки в описании.

  • @_mirai
    @_mirai 2 роки тому

    я немного в тебе разочарован..

    • @_mirai
      @_mirai 2 роки тому

      Видос старый :)
      Сейчас материал в твоих видео лучше, а это значит ты развиваешься!)
      В общем удачи

  • @pungvun1120
    @pungvun1120 2 роки тому

    А что делать если при переходе на 1 уровень музыки нет (
    Unity даёт предупреждение - "DontDestroyOnLoad only works for root GameObjects or components on root GameObjects.
    UnityEngine.StackTraceUtility:ExtractStackTrace ()"

    • @nfridman
      @nfridman  2 роки тому +1

      Ты пытаешься вынести не корневой объект сенны. Don't destroy on load не работает с вложенными объектами

    • @pungvun1120
      @pungvun1120 2 роки тому

      ​@@nfridman Спасибо большое !!! Все заработало !