Jump to content

SetSourceVolume does not affect the sound volume


photo

Recommended Posts

Здравствуйте!

Метод 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.

image.png.d2a92553272cc40c0d0447995cc0349b.png

Link to comment

Добрый день!

Уточните, пожалуйста, каким образом настроены битовые маски "Source Mask" для объектов SoundSource? Вероятно, недопонимание связано с тем, что значению Volume будет соответствовать предварительно заданный бит маски на источнике звука. По умолчанию для SoundSource объектов Source Mask равен 0 (00 00 00 01) и все они будет регулироваться при помощи слайдера "Sound -> Volume 0" в редакторе или при помощи метода Sound.SetSourceVolume(0, 1) в коде. Пожалуйста, проверьте, что маски настроены правильно, так как быстрая проверка с нашей стороны не выявила никаких проблем.

image.png

Спасибо!

Link to comment
9 minutes ago, bmyagkov said:

Добрый день!

Уточните, пожалуйста, каким образом настроены битовые маски "Source Mask" для объектов SoundSource? Вероятно, недопонимание связано с тем, что значению Volume будет соответствовать предварительно заданный бит маски на источнике звука. По умолчанию для SoundSource объектов Source Mask равен 0 (00 00 00 01) и все они будет регулироваться при помощи слайдера "Sound -> Volume 0" в редакторе или при помощи метода Sound.SetSourceVolume(0, 1) в коде. Пожалуйста, проверьте, что маски настроены правильно, так как быстрая проверка с нашей стороны не выявила никаких проблем.

image.png

Спасибо!

У меня есть 3 источника звука на сцене: у двух их них маска UI (00 00 00 01) и у одного - environment (00 00 00 02). Громкость источников регулируется напрямую из редактора с помощью ползунков  Sound -> Volume 0 и 1 корректно. Но при вызове через код результата уже нет.image.thumb.png.3b4d50228f716e078cc6e1a024b3292b.png

image.thumb.png.e195f030076ee9f319d36f7e2a89d12e.png

Link to comment
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
×
×
  • Create New...