1.每个方块(Cube)为一个波浪添加脚本MusicDance
2.整体获取马克风音量大小脚本MusicManager
MusicDancepublicclassMusicDance:MonoBehaviour{privatefloattargetPosY;privatefloatspeed;[HideInInspector]publicboolisDance;voidStart(){RandomTargetPosY();}voidUpdate(){if(isDance){if(Mathf.Abs(transform.localScale.y-targetPosY)>=1f){transform.localScale=newVector3(1,Mathf.SmoothDamp(transform.localScale.y,targetPosY,refspeed,Random.Range(0.2f,1f)),1);}else{RandomTargetPosY();}}else{//没有声音时,从当前高度下落到正常高度if(Mathf.Abs(transform.localScale.y-targetPosY)>=0.1f){transform.localScale=newVector3(1,Mathf.SmoothDamp(transform.localScale.y,1f,refspeed,Random.Range(0.2f,1f)),1);}}}voidRandomTargetPosY(){targetPosY=UnityEngine.Random.Range(1f,12f);}}
MusicManagerpublicclassMusicManager:MonoBehaviour{[SerializeField]privateMusicDance[]musicDances;privateAudioClipaudioClip;privatestringstrs;privatevoidAwake(){audioClip=Microphone.Start(strs,true,999,44100);strs=Microphone.devices[0];}voidStart(){}privatevoidUpdate(){for(inti=0;i20){returntrue;}else{returnfalse;}}}