0 支持
(130 ポイント)
ボイスチャット機能を検討しています。

接続後、常時喋りたいわけでなく、音声発信のミュートをしたいのですが、可能でしょうか。

試したこと、

・StreamType.BROADCASTでの方法はなく、

・StreamType.MULTICASTを使い、SetMulticastTargetで

 全員への発信をOFFにするような対応となるのでしょうか。

よろしくお願い致します。

回答 1

+1 支持
(3.9k ポイント)

音声発信のミュートであれば、MonobitMicrophone コンポーネントを適宜ON/OFFすれば良いと思います。

ざっくばらんに説明すると、以下のようなスクリプトを MonobitMicrophone を持つオブジェクトに作成してみると出来るはずです。

class Foo : MonobitEngine.MonoBehaviour
{
    // 自分の音声をミュートする
    public void MyMuteOn()
    {
        gameObject.GetComponent<MonobitEngine.VoiceChat.MonobitMicrophone>().enabled = false;
    }

    // 自分の音声のミュートを解除する
    public void MyMuteOff()
    {
        gameObject.GetComponent<MonobitEngine.VoiceChat.MonobitMicrophone>().enabled = true;
    }

    // 一例として、Zキーを押している間ミュートする
    public void Update()
    {
        if(Input.GetKeyDown(KeyCode.Z)) { MyMuteOn(); }
        else { MyMuteOff(); }
    }
}

...