Действительно ли функция
native KillSoundWhenDone takes sound soundHandle returns nothing
Высвобождает память переменной звука, или это к чем-то другому относится? Или как это сделать?
Надеюсь это не считается двойным вопросом
Примечание: Мне просто показалось удивительным , что нет функции мгновенного высвобождения памяти для некоторых handle-ов, таких как звук или спецэффект.
`
ОЖИДАНИЕ РЕКЛАМЫ...
8
Зачем удалять единожды созданный при инициализации звук? При проигрывании никакой памяти не выделяется. Спецэффекты прекрасно удаляются функцией DestroyEffect.
11
Зачем удалять единожды созданный при инициализации звук? При проигрывании никакой памяти не выделяется. Спецэффекты прекрасно удаляются функцией DestroyEffect.
это оффоп но спецэффекты не прекрасно удаляются. Они удаляются через пару секунд. Можешь попробовать, после выполнения команды DestroyEffect можно проиграть анимацию эффекта несколько раз, а потом он удалится, хотя сама команда прерывает любую анимацию На счет звуков, я их создаю динамически, динамически хочу и удалять.
8
Koladik, не через пару секунд, насколько я помню, если у модели спецэффекта присутствует только анимация birth (опционально death?), спецэффект можно удалять сразу же после создания, анимация завершится и спецэффект удалится; если модель не соответствует этим требованиям, спецэффект придется удалять после того, как пройдет анимация stand (+birth?), иначе никакого визуального эффекта не будет.
А зачем звуки динамически создавать? В редакторе звуков заранее создаются все нужные звуки и проигрываются когда нужно.
11
Koladik, не через пару секунд, насколько я помню, если у модели спецэффекта присутствует только анимация birth (опционально death?), спецэффект можно удалять сразу же после создания, анимация завершится и спецэффект удалится; если модель не соответствует этим требованиям, спецэффект придется удалять после того, как пройдет анимация stand (+birth?), иначе никакого визуального эффекта не будет.
А зачем звуки динамически создавать? В редакторе звуков заранее создаются все нужные звуки и проигрываются когда нужно.
Я проверю с одной анимацией, даже интересно, я проверял только когда две анимации. Но мне кажется, что ее заного можно будет запустить после удаления, если анимация короткая.
Звук создавать динамически затем, что бы удобно было копировать алгоритм, создал в одной своей карте систему и легко ее перетащил в любую другую без захламления переменных в редакторе звука, так как динамически ты все записываешь напрямую через путь звука. Плюс, я сейчас тестировал вообще воспроизведения звука в варике. Одну переменную получается можно "приклеить" только к одной точке на карте, чтобы воспроизводился 3д звук. А если хочешь, чтобы один и тот же звук воспроизводился в двух местах сразу то нужна еще одна переменная.
Мне пока непонятно многое в воспроизведении звука в варике, поэтому могу в чем-то ошибаться. Но то, что динамически создавать переменную самостоятельно намного удобнее, чем отдавать все на откуп редактору звука, я уверен.
8
Koladik, в любом случае функции вроде DestroySound или RemoveSound не существует, видимо динамическое создание/удаление не предполагалось, можно проверить поведение KillSoundWhenDone, запустив звук после вызова этой функции, и после завершения попробовать запустить ещё раз. Также можно создавать и проигрывать кучу звуков и смотреть на счётчик хендлов или потребление памяти.

Звук создавать динамически затем, что бы удобно было копировать алгоритм, создал в одной своей карте систему и легко ее перетащил в любую другую без захламления переменных в редакторе звука
Что мешает объявлять в своей библиотеке глобалки и использовать инициализатор для них? Или здесь более сложный случай?
11
Что мешает объявлять в своей библиотеке глобалки и использовать инициализатор для них? Или здесь более сложный случай?
Случай то тривиальный. Тут любой спел-чаннел, как пример, подойдет. Если использовать способность в двух местах карты одновременно, ну банальный близзард мага, то в этих двух местах звук дождя будет слышен, если использовать 3д звук, а во всей остальной карте нет. Так вот, такое можно реализовать триггерно с только если инициализировать массив звуков. Но вопрос заключается в том, действительно предложенная выше функция очищает память от handle'а звука при удалении, в принципе это можно проверить самому просто инициализируя ОЧЕНЬ много звуков без удаления до вылета варкрафта, а потом сравнить с удалением. Но это всё-таки запарно, я надеялся, что кто-то работал с похожими вещами.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.