sityrax Posted Friday at 10:05 AM Share Posted Friday at 10:05 AM Здравствуйте! Метод Unigine.Sound.SetSourceVolume не влияет на громкость звука источников на конкретном канале. При этом, если регулировать громкость в отдельном канале через настройки, то громкость звука меняется и это явно слышно (изображение ниже). Если Вызвать метод Unigine.Sound.SetSourceVolume(source: 1, volume: 0.0f); то Scalar newVolume = Unigine.Sound.GetSourceVolume(source: 1); вернёт обновленное значение 0, однако звук на этом канале никак не изменит свою громкость. Свойство Unigine.Sound.Volume же изменяет громкость всех источников корректно. Может есть какие-то дополнительные требования для изменения звука на отдельном канале через код? Версия ректора: UNIGINE 2 Community 2.18.1. Link to comment
bmyagkov Posted Friday at 10:58 AM Share Posted Friday at 10:58 AM Добрый день! Уточните, пожалуйста, каким образом настроены битовые маски "Source Mask" для объектов SoundSource? Вероятно, недопонимание связано с тем, что значению Volume будет соответствовать предварительно заданный бит маски на источнике звука. По умолчанию для SoundSource объектов Source Mask равен 0 (00 00 00 01) и все они будет регулироваться при помощи слайдера "Sound -> Volume 0" в редакторе или при помощи метода Sound.SetSourceVolume(0, 1) в коде. Пожалуйста, проверьте, что маски настроены правильно, так как быстрая проверка с нашей стороны не выявила никаких проблем. Спасибо! Link to comment
sityrax Posted Friday at 11:17 AM Author Share Posted Friday at 11:17 AM 9 minutes ago, bmyagkov said: Добрый день! Уточните, пожалуйста, каким образом настроены битовые маски "Source Mask" для объектов SoundSource? Вероятно, недопонимание связано с тем, что значению Volume будет соответствовать предварительно заданный бит маски на источнике звука. По умолчанию для SoundSource объектов Source Mask равен 0 (00 00 00 01) и все они будет регулироваться при помощи слайдера "Sound -> Volume 0" в редакторе или при помощи метода Sound.SetSourceVolume(0, 1) в коде. Пожалуйста, проверьте, что маски настроены правильно, так как быстрая проверка с нашей стороны не выявила никаких проблем. Спасибо! У меня есть 3 источника звука на сцене: у двух их них маска UI (00 00 00 01) и у одного - environment (00 00 00 02). Громкость источников регулируется напрямую из редактора с помощью ползунков Sound -> Volume 0 и 1 корректно. Но при вызове через код результата уже нет. Link to comment
bmyagkov Posted Friday at 12:15 PM Share Posted Friday at 12:15 PM 53 minutes ago, sityrax said: У меня есть 3 источника звука на сцене: у двух их них маска UI (00 00 00 01) и у одного - environment (00 00 00 02). Громкость источников регулируется напрямую из редактора с помощью ползунков Sound -> Volume 0 и 1 корректно. Но при вызове через код результата уже нет. А можно увидеть весь код примера? В нашем случае все происходит следующим образом: using System.Collections; using System.Collections.Generic; using Unigine; [Component(PropertyGuid = "5b91d558ca6100289ef2ffdf5c24e60397af16da")] public class soundtest : Component { void Init() { // write here code to be called on component initialization } void Update() { if (Input.IsKeyDown(Input.KEY.DIGIT_1)) Sound.SetSourceVolume(0, 0.1f); if (Input.IsKeyDown(Input.KEY.DIGIT_2)) Sound.SetSourceVolume(0, 1); if (Input.IsKeyDown(Input.KEY.DIGIT_7)) Sound.SetSourceVolume(1, 0.1f); if (Input.IsKeyDown(Input.KEY.DIGIT_8)) Sound.SetSourceVolume(1, 1); // write here code to be called before updating each render frame } } Мир настроен как в примере выше, один из источников звука имеет маску Source Mask 0, а второй соответственно Source Mask 1. При нажатии кнопки 1 на клавиатуре, звук для источника с маской 0 уменьшается, а на 2 возвращается в исходное состояние. Тоже самое для клавиш 7 и 8, которые изменяют громкость звука для источника с маской 1. Link to comment
Recommended Posts