Unity5でmic inputが反応しない件

micinputのサンプルがどれを試してもうまくいかない.

サンプルの記事ですと,コンソールにずっとゼロが表示されて音量が変化しません.

(最初に参考にさせていただいたスクリプト http://www.jonki.net/entry/20130607/1370622815 )

思い悩んで2日目,グーグルさんに1年以内の記事に限って検索するとその答えが載っていた.

まずはスクリプト(改変済み)

using UnityEngine;
using System.Collections;
//script source from web sample
//
public class micinput : MonoBehaviour {

	void Start()
	{

		//check
		foreach (string device in Microphone.devices) {
			Debug.Log("Name: " + device);
		}
		//
		GetComponent<AudioSource>().clip = Microphone.Start(null, true, 999, 44100);  // マイク入力
		GetComponent<AudioSource>().loop = true; // ループ再生にしておく
		//GetComponent<AudioSource>().mute = true; // Unity5ではコメントアウトうる
		while (!(Microphone.GetPosition("") > 0)){}             // マイクが使えるまで待つらしい
		GetComponent<AudioSource>().Play();                                           // 再生しないと音量をチェックできない
	}


	void Update()
	{
		float vol = GetAveragedVolume();
		print(vol);    
	}

	float GetAveragedVolume()
	{ 
		float[] data = new float[256];
		float a = 0;
		GetComponent<AudioSource>().GetOutputData(data,0);
		foreach(float s in data)
		{
			a += Mathf.Abs(s);
		}
		return a/256.0f;
	}


}

その対処方法

(ソース http://qiita.com/CST_negi/items/c8862f8d05dd9e871917 )

CreateEmptyで空のオブジェクトを作成

そこにスクリプトをアサインします

ミキサーの画面を呼び出し,[+]ボタンでミキサーを作成(ミキサなんてはじめてつこうたよ,,)micmixer

そのミキサのフェーダーを-80dbまで下げる(でないとハウリングおこしました)

micmixer2

上で空のオブジェクトに割り当てたたスクリプト(画面最下段の赤線)にAudio Sourceを割り当てます.

Outputに先ほど作成したミキサー(なぜかMasterと表示される)をアサインします

micmixer3

無事float値で取得できました