- Home /
How do I Synchronize GameObjects to move to the beat of music?
Hello! I have recently tried to make a game in which certain objects move in tact to the beat, But I can't get the beat to work properly. I have searched everywhere for a simple solution to this, and I believe it has something to do with that the music isn't dependant of the frame rate. Here's a Youtube video showing off my problem ( Youtube Video), And Here's the code:
void Update()
{
Rhythm ();
}
public void Rhythm() {
if (beatTime <= 0) {
if (!GameManager.variables.isPlaying) {
GameManager.variables.isPlaying = true;
GameManager.MusicStart ();
}
beatTime = 60f / GameManager.variables.currentMusicKit.tracks [GameManager.variables.difficulty].bpm;
onBeat = true;
}
else if (beatTime > 0) {
beatTime -= Time.deltaTime;
}
}
Thanks for any answers! As I said, I haven't found anywhere describing a solution for this clearly enough for me. I really don't know a lot when it comes to music.
Have you solved this one? I'm trying to do the same thing.
Thanks, rich
Answer by NorthStar79 · Feb 01, 2017 at 03:15 PM
public GameObject gm;
public AudioSource _audio;
void Update()
{
float f = AnalizeSound();
gm.Transform.Position.y = f;
}
float AnalizeSound()
{
float a =0;
_audio.GetOutputData(Sample,0);
foreach(float s in Sample)
{
a = Mathf.Abs(s);
}
return a;
}
something like this. i did write this code in browser and didn't tested, so there will be some typos , just take a look this for an inspiration :)
Your answer
Follow this Question
Related Questions
Trigger audio loop on beat with PlayScheduled 1 Answer
How To Turn Off Sound For Certain Objects? 1 Answer
Muting all Sound / Music from options menu 1 Answer
Audio Scripting 1 Answer
Multiple Cars not working 1 Answer