Как сделать фоновую музыку в Unity
Здравствуйте, а как сделать фоновую музыку в Unity. Ну вот я сделал компонент Audio source в Main Camera и закинул туда саму музыку. Она воспроизодится только один раз, как её зациклить?
Голосование за лучший ответ
поставьте галочку в Audio Source на «Loop», тогда музыка не будет заканчиваться, а будет повторяться. надеюсь, я правильно понял Ваш вопрос
Николай НовиковПрофи (670) 2 года назад
Я уже нашёл как это сделать, но всё же твой ответ верен, благодарю.
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.
Как добавить фоновую музыку на каждую сцену и настроить её?
Всем привет! Создаю свою первую игру, и тут столкнулся с проблемой. Я добавил музыку в игру, сделал так, чтобы она настраивалась с помощью слайдера, но когда происходит переход между с ценами она исчезает, и в начале игры её также нет. Можете пожалуйста помочь? В ютубе так и не смог найти ответа, а игра без звуков не особо понравится.
Вот код который использовал
< [SerializeField]private AudioSource audio; private Slider slider; [SerializeField]private string saveVolume; [SerializeField]private string sliderTag; private float volume; private void LateUpdate() < GameObject sliderObj = GameObject.FindWithTag(this.sliderTag); if (sliderObj != null) < this.slider = GetComponent(); this.volume = slider.value; if (this.audio.volume != this.volume) < PlayerPrefs.SetFloat(this.saveVolume, this.volume); >this.audio.volume = this.volume; > > private void Awake() < if (PlayerPrefs.HasKey(saveVolume)) < this.volume = PlayerPrefs.GetFloat(saveVolume); this.audio.volume = this.volume; GameObject sliderObj = GameObject.FindWithTag(this.sliderTag); if (sliderObj != null) < this.slider = sliderObj.GetComponent(); this.slider.value = this.volume; > else < this.volume = 0.5f; PlayerPrefs.SetFloat(this.saveVolume, this.volume); this.audio.volume = this.volume; >> > >
- Вопрос задан более двух лет назад
- 416 просмотров
Комментировать
Решения вопроса 1
Александр @AlexandrG44
Она на обьекте висит (музыка)? Кинь скрипт на него и в нем напиши: https://docs.unity3d.com/ru/530/ScriptReference/Ob.
Ответ написан более двух лет назад
vkvk @vkvk Автор вопроса
Сначала ставил её на отдельный объект, но потом посмотрел видео, создал AudioSource и работал с ним. не как не получалось. Сейчас попробую.
vkvk @vkvk Автор вопроса
Стоп, теперь когда я захожу обратно в сцену, в которой создается эта музыка, их появляется несколько. И получается так, что у меня одновременно играет одна песня несколько раз.
Как сделать фоновую музыку в Unity
Привет начинающим разработчикам. В данной статье мы научимся создавать фоновую музыку для своей игры. Делается это очень просто.
Для начала со своего компьютера загрузите в окно Project ту музыку, которую хотите сделать фоновой для игры. Для удобства можете переименовать ваш аудиофайл как Вам удобно.
Далее нам нужно определиться, какой объект будет воспроизводить музыку. Это может быть абсолютно любой объект. Но лично я буду воспроизводить музыку с помощью моей стандартной камеры, Main Camera. Поэтому, для этого я для своей камеры в окне Inspector создаю новый компонент Audio Source — который отвечает за хранение и воспроизведение аудиофайла.
После добавления компонента Audio Source, нас интересуют три поля:
- В поле AudioClip, необходимо из окна Project, перетащить Ваш аудиофайл.
- В поле Play On Awake поставить галочку, чтобы музыка воспроизводилась сразу после того, как загрузится на сцене игровой объект, к которому прикреплён данный аудиофайл.
- В поле Loop так же поставьте галочку, чтобы после окончания вашего аудиофала, он воспроизводился снова.
Поздравляем, фоновая музыка добавлена к нашей игре. И нам даже не понадобилось использовать ни одной строчки кода.
Так же обратите внимание, что в компоненте Audio Source имеется множество различных настроек, например регулировка громкости, настройка стерео, и так далее. Можете с ними поэксперементировать 🙂
На этом всё. Если статья для Вас была полезной, буду рад Лайкам и комментариям.
Как сохранить фоновую музыку на всех сценах?
Здравствуйте, нужна помощь, как сохранить фоновую музыку во всех сценах. Тип вот первая сцена игрок прошел дальше и перешел на другую сцену и музыки больше нет ну или началась заново. Как вот сделать тип чтоб что в первой сцене она играла и во второй продолжалась.
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как сделать фоновую музыку?
Люди, помогите пожалуйста. Весь интернет перерыл и нашел только один код, который относительно.
Как поставить фоновую музыку
Мне нужно поставить фоновую музыку в своей программе на Visual Basic 2010. Чтобы она играла себе.
Как сделать фоновую музыку?
С обычной музыкой проблем нет SoundPlayer SoundPlayer = new SoundPlayer("Rev.WAV"); .
Как сделать фоновую музыку?
Всем привет. как сделать музыку на фон. Что бы при запуске играла музыка. и еще была кнопка.
3339 / 1761 / 1019
Регистрация: 26.10.2018
Сообщений: 5,174
Регистрация: 03.04.2020
Сообщений: 20
1max1, здравствуйте я прочитал статью и там не то что мне нужно
vk.com/pppoe252110
62 / 43 / 21
Регистрация: 31.05.2019
Сообщений: 251
SoVa_V_KeDax, смешно
vk.com/pppoe252110
62 / 43 / 21
Регистрация: 31.05.2019
Сообщений: 251
270 / 186 / 86
Регистрация: 04.07.2012
Сообщений: 774
Сообщение было отмечено SoVa_V_KeDax как решение
Решение
Сообщение от SoVa_V_KeDax
1max1, здравствуйте я прочитал статью и там не то что мне нужно
Первый ответ, в общем то, верен полностью, и не проблема отвечающего, что вы не можете тогда объяснить, что именно Вам нужно. Но у меня на ноуте случайно завалялся старый скрипт с работы со звуком. С сохранением воспроизведения, привязанным слайдером, и сохранением настройки при выключении, пользуйтесь, мне не жалко.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class VolumeValue : MonoBehaviour { public GameObject BGMusic; //Ваш объект с фоновой музыкой private AudioSource audioSrc; public static float musicVolume; public Slider VolValue; //Слайдер если нужна регулировка public GameObject[] objs1; void Awake() { objs1 = GameObject.FindGameObjectsWithTag("Sound"); //не забываем задать тег Sound для префаба с музыкой if (objs1.Length == 0) { BGMusic = Instantiate(BGMusic); //создаем объект из префаба BGMusic.name = "BGMusic"; //необязательно, просто внешний вид улучшает:) DontDestroyOnLoad(BGMusic.gameObject); //Ответ на Ваш вопрос } else { BGMusic = GameObject.Find("BGMusic"); //обращаемся к объекту, если он уже существует. } if (!PlayerPrefs.HasKey("MusicVol")) { musicVolume = 0.1f; //тут громкость по умолчанию } else { musicVolume = PlayerPrefs.GetFloat("MusicVol"); //сохраненная громкость VolValue.value = PlayerPrefs.GetFloat("MusicVol"); //меняем значение слайдера на сохраненную громкость } } void Start() { audioSrc = BGMusic.GetComponentAudioSource>(); } void Update() { audioSrc.volume = musicVolume; //устанавливаем громкость при изменении слайдера } public void SetVolume(float vol) { musicVolume = vol; PlayerPrefs.SetFloat("MusicVol", vol); //сохраняем громкость } }
Создаем пустой объект, либо используем main camera, перетаскиваем на него скрипт. Создаем пустой объект (BGMusic) с audiosource и вашей музыкой в качестве аудиоклипа, создаем тег Sound, тег выставляем для объекта с музыкой, ставим галочки Play on awake, Loop. Создаем префаб из этого объекта, удаляем его со сцены.
Слайдер, если нужен: создаем объект типа UI Slider. В блоке OnChangeValue () нажимаем плюсик перетягиваем наш контроллер на onchangevalue, в выпадающем списке выбираем VolumeValue и SetVolume (там их 2 будет, нужен тот который без переменной, сторока 2 или 3). А, ну и слайдер перетягиваем на public Slider переменную в контроллере, а префаб с музыкой на public GameObject.