Страница 1 из 1

Общий звук в мультиплеере

СообщениеДобавлено: 28 мар 2019, 00:09
MihlanDOta
Подскажите, как сделать так, что бы в мультиплеере звуки могли слышать все игроки, а не только тот префаб на котором висит звук. То есть Audio Sourse висит на префабе на сцене, и если он воспроизводит звук, то он будет слышен всем игрокам, а не серверу. Буду очень благодарен! (c#)

Re: Общий звук в мультиплеере

СообщениеДобавлено: 28 мар 2019, 06:26
Jarico
У клиента и сервера должен быть общий сетевой объект который будет воспроизводить звук по команде сервера...

Пример для uNet'а
Синтаксис:
Используется csharp
[ClientRpc]
void RpcPlaySound(strind s_name){
foreach(AudioClip audio in sounds)
{
if(audio.name == s_name)
{
AudioSource.Play(audio);
}
}


//на сервере
void PlaySound_Observed(string s_name)
{
RpcPlaySound(s_name);
}
 


Можно еще во время подключения заставить клиента закэшировать все звуки которые использует сервер - так появится возможность воспроизведения кастомного контента (как в GoldSource или Source)

А можно сделать стриминг звука с сервера на клиент

Re: Общий звук в мультиплеере

СообщениеДобавлено: 07 апр 2019, 19:52
AngryCat
MihlanDOta писал(а):Подскажите, как сделать так, что бы в мультиплеере звуки могли слышать все игроки, а не только тот префаб на котором висит звук. То есть Audio Sourse висит на префабе на сцене, и если он воспроизводит звук, то он будет слышен всем игрокам, а не серверу. Буду очень благодарен! (c#)
А
А мультиплеер то какой? Unet, Photon, RakNet?