团结产生的敌人取决于音频爆发

时间:2016-06-25 11:27:52

标签: c# audio unity3d unityscript

我试图创建一个衍生系统,根据音乐爆发产生敌人。例如,当一个柔和的音乐播放时,敌人会慢慢产生,当一个动作部分出现时,敌人的星星会更快地产生。

我对音频的东西真的不太好所以我只有这个非常通用的代码,我试图理解它是如何工作的

提前致谢

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));
    }
}
}

1 个答案:

答案 0 :(得分:0)

最简单(也可能是最好)的方法是在您的音乐中放置代表音乐中高动作点的点。这将使您能够控制并避免您不想要的意外生成。