/// <summary> /// エンコードボイスデータ送信デリゲート /// </summary> /// <param name="debugMode">trueの場合、送信する音声が自分にも返ってくる</param> /// <param name="header">ヘッダー</param> /// <param name="voice">音声データ</param> public override void OnSendVoice(bool debugMode, object[] header, byte[] voice, int voice_size) { switch (SendStreamType) { case StreamType.BROADCAST: { // 送信タイプの指定 var target = (debugMode == true) ? MonobitTargets.All : MonobitTargets.Others; // ボイスチャットデータの送信処理 MonobitNetwork.SendVoice(monobitView, target, new int[0], ReliableMode, Encrypt, header, voice, voice_size); } break; case StreamType.MULTICAST: { // 送信対象リストの取得 List <Int32> multicastPlayerList = GetMulticastTarget(); // 送信対象リストの中に自分自身が含まれている場合、デバッグモードを有効にする if (multicastPlayerList.Contains(MonobitNetwork.player.ID)) { m_DebugMode = true; } // デバッグモードが有効の状態で、かつ送信対象リストの中に自分自身が含まれていない場合、リストに追加する if (debugMode && !multicastPlayerList.Contains(MonobitNetwork.player.ID)) { multicastPlayerList.Add(MonobitNetwork.player.ID); } // 送信対象リストの中に自分自身が含まれていない場合、デバッグモードを無効にする if (!multicastPlayerList.Contains(MonobitNetwork.player.ID)) { m_DebugMode = false; } // ボイスチャットデータの送信処理 if (multicastPlayerList.Count > 0) { MonobitEngineBase.MonobitNetwork.SendVoice(monobitView, MonobitTargets.LimitedPlayer, multicastPlayerList.ToArray(), ReliableMode, Encrypt, header, voice, voice_size); } } break; } }