Unity / VRゲーム開発日記@長崎

Unityを使ったVRのゲーム開発をやってます。

簡単にミュートを実装する方法

実装方法は、

AudioListener.volume = 0;

以上。


こちらのQ&Aを参考にしました。

how do i mute all audio sound? - Unity Answers

AudioListener.volumeのデフォルト値は1みたいなので、
元に戻すには1を設定しなおしてください。

値を少数単位で減らしていけば、音のフェードアウトなどにも使えそうです。


単にAudioListenerを無効にするという方法も考えれられますが、
こうした場合、ConsoleにAudioListenerが無いという警告が表示されまくります。
また、AudioSourceのPlay On Awakeなどで音を出していた場合、冒頭が若干再生されるようなので、
AudioListenerを無効にする事自体が推奨されないのかもしれないです。



ちなみに、ミュート機能を意識した経緯は
以下のとおり。


Androidは、マナーモード=無音
というわけではないみたいで、
マナーモードは単に着信音を無音にするだけで、
ゲームの音などは出てしまうみたいです。

スマホはマナーモードなのに音がなる!?知らなかったマナーモードの豆知識【失敗しないスマホデビュー】 : Androidアプリを徹底レビュー Appmax(アップマックス)

iPhoneの場合は、マナーモードはすべての音が消されるので
特に気にする必要はないと思いますが。


ただ、マナーモードにして無音って実装をしてしまうと、
本来の仕様とは違う動作をしているということと、
たいていのアプリは音が出たままなので、

逆に困惑するユーザーがいる可能性もあるので、
とりあえずタイトル画面にミュートボタンを実装しようかなと思いました。

※ちなみに、パズドラはマナーモードでミュートになるみたいです。