声音的大小控制物体的运动:这个是写好的脚本,拿到unity中就可以测试一下。
public class Manager : MonoBehaviour {
public float volume;
AudioClip micRecord;
string device;
// Use this for initialization
void Start () {
//获取麦克风的音量
device = Microphone.devices[0];
//截取99秒的声音片段放到micRecord剪辑片段中;
micRecord = Microphone.Start(device, true, 99, 44100);
}
// Update is called once per frame
void Update () {
volume = GetMaxVolume();
if(volume<0.2f)
{
transform.Translate(new Vector2(0.1f, 0) , Space.World);
}
else
{
transform.Translate(new Vector2(0.1f, 0) *5, Space.World);
}
}
//获得最大音量片段的函数
float GetMaxVolume()
{
//最大音量
float maxVolume = 0f;
//用一个数组存储多个声音片段;(用来找到最大音量的片段)
float[] volumeData = new float[128];
int offset = Microphone.GetPosition(device) - 128 + 1;
if(offset<0)
{
return 0;
}
micRecord.GetData(volumeData,offset);
for (int i = 0; i < 128; i++)
{
float tempMax = volumeData[i]*volumeData[i];
if(maxVolume<tempMax)
{
maxVolume = tempMax;
}
} return maxVolume;
}
}
最后小小宣传下:一个致力于unity游戏,模型,等资源的淘宝店铺,店里有unity3d成品游戏(源工程,源代码),场景资源,模型资源等,一切资源都特别优惠,店铺链接:【unity3D素材包/unity3d中世纪村庄包Medieval Village Pack】https://m.tb.cn/h.eaENjDH?sm=2b946c 点击链接,再选择浏览器咑閞;或復·制这段描述¥kIKkbAV3c3C¥后到?淘♂寳♀?