我试图创建一个衍生系统,根据音乐爆发产生敌人。例如,当一个柔和的音乐播放时,敌人会慢慢产生,当一个动作部分出现时,敌人的星星会更快地产生。
我对音频的东西真的不太好所以我只有这个非常通用的代码,我试图理解它是如何工作的
提前致谢
using UnityEngine;
using System.Collections;
public class AudioVisualiser : MonoBehaviour {
private float[] m_spectrumData;
private int m_bufferSize = 1024;
// used for color animation
public Gradient g_gradient;
// Use this for initialization
void Start () {
m_spectrumData = new float[m_bufferSize];
}
// Update is called once per frame
void Update () {
GetComponent<AudioSource>().GetOutputData ( m_spectrumData , 0 );
for ( int i = 0 ; i < m_bufferSize; i++)
{
float x = i * 0.2f;
float y = m_spectrumData[i] * 10.0f;
Debug.DrawLine (new Vector3 ( x ,0,0), new Vector3 (x,y , 0), g_gradient.Evaluate((float)i/m_bufferSize));
}
}
}
答案 0 :(得分:0)
最简单(也可能是最好)的方法是在您的音乐中放置代表音乐中高动作点的点。这将使您能够控制并避免您不想要的意外生成。