[Вроде решено] Проблема с AudioSource.PlayOneShot
|
|
robertono | Дата: Пятница, 29 Августа 2014, 22:17 | Сообщение # 1 |
Чокнутый Кот
Сейчас нет на сайте
| У меня проблема с методом PlayOneShot. Video Мне нужно проигрывать звук при выстреле. Если посмотреть видео, то слышно как при следующем вызове PlayOneShot предыдущий звук уничтожается (а а должен заканчиваться и одновременно начинаться новый). Всё бы ничего, если бы такое случалось всегда! То звук нормальный, то вот такая ерунда. И я так и не понял в чем прикол. Сначала я подумал что это когда я играю в оффлайн сцене, но потом я попробовал включить сервер, зайти на него и тогда уже было нормально. Но потом сделал билд и эта ерунда опять появилась. И здесь нету связи билд это или сам юнити. Всё проигрывается на одном AudioSource, объект с ним никогда не отключается и не создается новый AudioSource. Просто куча вызовов PlayOneShot.
Как исправить?
Добавлено (29.08.2014, 22:17) --------------------------------------------- Как решить то? Никто не знает? Есть идеи у кого нибудь?
Сообщение отредактировал robertono - Воскресенье, 31 Августа 2014, 14:41 |
|
| |
romgerman | Дата: Пятница, 29 Августа 2014, 22:32 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Цитата robertono ( ) а а должен заканчиваться и одновременно начинаться новый А-а, нет.
|
|
| |
beril | Дата: Пятница, 29 Августа 2014, 22:40 | Сообщение # 3 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| А проверку не пробывал сделать? Если звук проигрывается, тогда не проигрывать новый звук
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
robertono | Дата: Суббота, 30 Августа 2014, 00:00 | Сообщение # 4 |
Чокнутый Кот
Сейчас нет на сайте
| romgerman, Должен! Почему тогда иногда работает и иногда не работает? Добавлено (30.08.2014, 00:00) --------------------------------------------- beril, нельзя. Этож, ужасно будет выглядеть. Где ты видел автомат у которого звук поступает намного реже его скорострельности? Не, так не пойдет.
|
|
| |
|
nik | Дата: Суббота, 30 Августа 2014, 03:37 | Сообщение # 6 |
just nik
Сейчас нет на сайте
| часть исходника хоть бы предоставьте..
BridgeGamingTeam
|
|
| |
robertono | Дата: Суббота, 30 Августа 2014, 17:35 | Сообщение # 7 |
Чокнутый Кот
Сейчас нет на сайте
| beril, не уверен что именно так делают в современных шутерах...
nik, да тут всё просто, на основе скорострельности, я считаю таймером когда нужно стрелять (Timer.deltaTime). В общем куча выстрелов в секунду и куча вызовов PlayOneShot что бы проиграть один звук выстрела
Просто очень странно то, что сейчас я включил юнити и всё стало нормально. Но ведь я ничего не менял. Единственное что я сегодня сделал так это импортировал парочку новых моделей и создал скрипт, но это ведь не имеет никакого отношения к этому звуку. videoДобавлено (30.08.2014, 17:35) --------------------------------------------- Сегодня всё работает нормально. Но в какой то следующий день будет опять эта проблема и так и не будет понятно в чем прикол..
|
|
| |
nik | Дата: Воскресенье, 31 Августа 2014, 09:00 | Сообщение # 8 |
just nik
Сейчас нет на сайте
| robertono, возможно это зависит от фпс
BridgeGamingTeam
|
|
| |
SnakeR | Дата: Воскресенье, 31 Августа 2014, 13:41 | Сообщение # 9 |
постоянный участник
Сейчас нет на сайте
| robertono, а просто проигрывать звук на каждый выстрел без всяких ваншот не вариант?
Unity3D Developer Ваш лучший помощник при разработке в Unity3D
|
|
| |
robertono | Дата: Воскресенье, 31 Августа 2014, 14:40 | Сообщение # 10 |
Чокнутый Кот
Сейчас нет на сайте
| nik, вот именно что нет. То 60 то 30, нет разницы. Как запуститься юнити так и будет..
SnakeR, это как? просто Play () ?Добавлено (31.08.2014, 14:25) --------------------------------------------- SnakeR, Не вариант, Вы ведь не проверяли этот вариант. Результат будет абсолютно такой же. Добавлено (31.08.2014, 14:36) --------------------------------------------- Я нашел что на это влияет, вообще эта тема называется "play sounds simultaneously" и по этой теме я нашел ответ: http://answers.unity3d.com/questio....ff.html
В общем при импорте аудиофайла есть 3 типа загрузки файла: Decompress on load Compressed in memory Stream from disc
В той теме сказано что при использовании стрима с диска всё будет работать. И это верно. До этого у меня было выбрано Compressed in memory.
Отсюда вопрос: Что лучше, Decompress on load ИЛИ Stream from disc ? Оба варианта работают. Добавлено (31.08.2014, 14:40) --------------------------------------------- В общем первое будет использовать в десять рад больше оперативной памяти, а второе отлично подходит для музыки или длинных треков. Но так как это всего лишь звук одного выстрела я выберу первый.
Если у вас такая же проблема - попробуйте сменить Load Type у вашего файла в настройках импорта!
|
|
| |
Ranger | Дата: Четверг, 11 Сентября 2014, 07:44 | Сообщение # 11 |
почти ветеран
Сейчас нет на сайте
| мне не помогло. У меня при звуке рождается специальный проигрыватель с установками на затухание звука от дистанции. после окончания звука он уничтожается. Количество источников звука может достигать 10. Иногда проигрываются щелчки вместо звуков.
|
|
| |
SnakeR | Дата: Четверг, 11 Сентября 2014, 19:18 | Сообщение # 12 |
постоянный участник
Сейчас нет на сайте
| robertono, я всегда на стрельбу использую обычный play() и работает отлично без всяких глюков, экспериментов с импортом и т.д.
Unity3D Developer Ваш лучший помощник при разработке в Unity3D
|
|
| |
robertono | Дата: Четверг, 11 Сентября 2014, 20:26 | Сообщение # 13 |
Чокнутый Кот
Сейчас нет на сайте
| Ranger, ты имеешь ввиду ты каждый раз создаешь новый gameobject с audiosource ?
SnakeR, ничего не могу сказать.
Я решил конкретно мою проблему, решение остальных я не знаю.
|
|
| |
Ranger | Дата: Четверг, 11 Сентября 2014, 20:41 | Сообщение # 14 |
почти ветеран
Сейчас нет на сайте
| Цитата robertono ( ) ты имеешь ввиду ты каждый раз создаешь новый gameobject с audiosource ? да.
|
|
| |