Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Unity3D: может ли один AudioSource воспроизводить несколько звуков одновременно?

Unity3D: может ли один AudioSource воспроизводить несколько звуков одновременно?

Поделиться
AlerrПостоялецwww9 сен. 201621:38#0
Привет всем!
Экспериментирую со звуком в unity. Возникла ситуация, когда обьект ударяется, нужно воспроизвести звук. Так вот, в чем проблема: звук играется достаточно долго. Не успевает он закончить воспроизводиться, как новое воспроизведение звука прерывает старое. В итоге звук обрывается...
Меня интересует может ли AudioSource воспроизводить несколько звуков?
Как вообще решается данная проблема?
У меня пока одна мысль: нужно каждый раз при воспроизведении создавать обьект с AudioSource, назначить ему звук и все будет хорошо.
Но может это слишком ресурсзатратно? Есть другие варианты?
SlavaLiaПостоялецwww10 сен. 20169:49#1
.PlayOneShot(clip); //опционально можно указать уровень громкости вторым параметром
AlerrПостоялецwww10 сен. 201621:19#2
SlavaLia
> .PlayOneShot(clip); //опционально можно указать уровень громкости вторым параметром
Это мне известно. Мне нужно в один момент времени запустить более 1 аудиоклипа.
Есть вариант сделать несколько AudioSources:
http://answers.unity3d.com/questions/175995/can-i-play-multiple-a… gameobje.html

Вот тут вообщем-то подтверждение моим словам:
http://answers.unity3d.com/questions/977606/how-to-play-multiple-… aneously.html

E-ConeУчастникwww10 сен. 201623:54#3
AudioSource.PlayAudioClipAtPosition
но лучше самому сделать свой вариант
SlavaLiaПостоялецwww11 сен. 201614:53#4
Alerr
> Это мне известно. Мне нужно в один момент времени запустить более 1 аудиоклипа.

Так именно это и может делать функция .PlayOneShot(clip);
Она запускает звучание нового клипа и не останавливает звучание ранее запущенного клипа.

Скорее всего вы путаете её с функций .Play() - вот она то как раз использует аудио соурс в монопольном режиме.


Проверил только что у себя.
Код тестовый прилагается.
Две музыкальные композиции звучат одновременно.
Ч.Я.Д,Н.Т?

using UnityEngine;
using System.Collections;

public class TestSounds : MonoBehaviour {
  public AudioSource audio;
  public AudioClip clip1;
  public AudioClip clip2;
  
  void Update () {
    if(Input.GetKeyDown(KeyCode.Alpha1)){
      audio.PlayOneShot(clip1);
    }
    if(Input.GetKeyDown(KeyCode.Alpha2)){
      audio.PlayOneShot(clip2);
    }
  }
}
AlerrПостоялецwww11 сен. 201614:58#5
SlavaLia, спасибо) Да, я спутал ее с Play

/ Форум / Программирование игр / Звук

2001—2017 © GameDev.ru — Разработка игр