Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
7 / 6 / 4
Регистрация: 06.02.2017
Сообщений: 73
1

Аудио на сценах

07.01.2018, 00:34. Просмотров 1064. Ответов 6
Метки нет (Все метки)

Всем привет! Нужна помощь с аудио. Суть такая: есть сцена Main и при ее запуску, точнее при запуску приложения, включается мелодия. есть так же сцена Play, Setting и т.д. вообщем, нужно при переходе на другую сцену, что бы аудио файл не начинался сначала, а продолжался. То есть что бы звук был плавный, и допустим при выходе из Setting в Main аналогично мелодия дальше играла плавно. Есть какие идеи реализации? а идеальный вариант был бы - пример кода)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2018, 00:34
Ответы с готовыми решениями:

Музыка на сценах
Приветствую. Суть такая - есть 2 сцены, одна старт, другая - сама игра. В сцене с игрой на музыке...

Создать глобальные переменные, которые будут присутствовать во всех сценах проекта
Как создать глобальные переменные, которве будут присутствовать во всех сценах проекта?

Подёргивания в кат-сценах
Здравствуйте! Столкнулся с такой проблемой. Уже в двух играх (Mad Max, Remeber me) наблюдаю...

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

6
2 / 2 / 2
Регистрация: 24.12.2017
Сообщений: 65
07.01.2018, 10:26 2
Лучший ответ Сообщение было отмечено skyfer как решение

Решение

Я для этого значение time у AudioSource сохраняю в PlayerPrefs, а потом в другой сцене присваиваю time из PlayerPrefs текущему AudioSourc'у и продолжаю.
Пример:
C#
1
2
3
4
5
6
7
8
9
10
public void OpenScene()
{
GetComponent<AudioSource>().Pause;
float audiotime = GetComponent<AudioSource>().time;
PlayerPrefs.SetFloat("soundtime",audiotime);
SceneManager.LoadScene(1);
 
 
 
}
Потом в другой сцене при проигрывании:
C#
1
2
3
4
5
6
7
8
float audiotime = 0;
void Start()
{
audiotime = PlayerPrefs.GetFloat("soundtime");
GameObject go = GetComponent<AudioSource>();
go.time = audiotime;
go.Play();
}
В общем все. Наверное эта задача может решаться и по другому, но я пользуюсь этим способом.
1
7 / 6 / 4
Регистрация: 06.02.2017
Сообщений: 73
07.01.2018, 23:11  [ТС] 3
благодарю! а возможно ли (и есть ли смысл) выбрасывать данные операции в отдельный поток, что бы аудио файл воспроизводился без задержек на момент прогрузки другой сцены?
0
158 / 157 / 59
Регистрация: 19.02.2015
Сообщений: 821
09.01.2018, 08:59 4
А не проще повесить мелодию на отдельный объект, а его просто напросто DontDestroyOnLoad?

(не знаю, как поведет себя мелодия при смене сцены, поэтому это лишь теория)
0
7 / 6 / 4
Регистрация: 06.02.2017
Сообщений: 73
09.01.2018, 18:51  [ТС] 5
я тоже так думал, обьект то не удаляется, но воспроизводиться заново. вот по этому мне и нужно было подобное решение, которое продолжает воспроизведение аудио. так что по факту финальное решение это данные скрипты и конечно же dontdestroy)
0
132 / 127 / 43
Регистрация: 07.11.2017
Сообщений: 553
11.01.2018, 13:26 6
Цитата Сообщение от Serj190492 Посмотреть сообщение
А не проще повесить мелодию на отдельный объект, а его просто напросто DontDestroyOnLoad?
(не знаю, как поведет себя мелодия при смене сцены, поэтому это лишь теория)
превосходно она себя ведет)

официальный тутор от Юнити

аудио примерно с 20й минуты, но стоит посмотреть и весь ролик
0
737 / 585 / 203
Регистрация: 06.08.2015
Сообщений: 2,428
12.01.2018, 13:51 7
loozsec7, зачем для такой мелочи в префсы писать? Есть синглтоны, есть статики...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2018, 13:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Происходит затухание/затемнение экрана на темных сценах фильмы/игры
Собственно надеюсь на помощь в решении проблемы. Имею видеокарту nVidia gt525m, dell inspirion...

Остановка аудио плеера при клике на другой аудио плеер
Всем привет. На сайт добавил такой вот плеерочек. На странице стоит много таких плееров и нужно,...

Аудио 3.5 и HDMI как единая аудио система
Есть колонки, с сабуфером подключенные через обычный 3.5 аудио. Есть телевизор (С двумя...

Как изменить переменную при клике на кнопку и чтобы эта переменная можно было менять во всех сценах
Как изменить переменную при клике на кнопку и чтобы эта переменная можно было менять во всех...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.