基本上這次程式碼主要是用程式來產生 Sin 正弦波聲音,波形圖如下:

Sine_waves_different_frequencies  

以下為執行結果,可以使用滑桿來改變聲音頻率:

Unity - A.unity - New Unity Project 31 - PC, Mac & Linux Standalone  


using UnityEngine;

public class SinAudio : MonoBehaviour{
    float f = 0;
    float f2 = 0;
    float sv = 300;
    float Hz;

    void OnAudioFilterRead(float[] data, int channels){
        for (int i = 0; i < data.Length; i++){
            data[i] = Mathf.Sin(f);
            if(i% (int)sv == 0){
                f++;
            }
        }
    }

    void Awake(){
        InvokeRepeating("Run", 0, 1);
    }

    void Run(){
        Hz = f - f2;
        f2 = f;
    }

    void OnGUI(){
        GUI.Label (new Rect(Screen.width/2-30, Screen.height/2-50, 60, 30), Hz +" Hz");
        sv = GUI.HorizontalSlider(new Rect(20, Screen.height/2-15, Screen.width-40, 30), sv, 1, 1000);
    }
}






arrow
arrow
    全站熱搜

    黃彥霖 發表在 痞客邦 留言(0) 人氣()