예제 #1
0
    void Update()
    {
        Ray mainR = new Ray(transform.position, (Listener.transform.position - transform.position));

        Debug.DrawRay(transform.position, (Listener.transform.position - transform.position), Color.green);
        RaycastHit occlusion;

        if (Vector3.Distance(Listener.transform.position, transform.position) <= SoundDistance)
        {
            MainSound.volume = Volume;
            if (Physics.Raycast(mainR, out occlusion))
            {
                oclussed = occlusion.collider.gameObject.GetComponent <MaterialSound>();
                if (oclussed)
                {
                    WallFX.cutoffFrequency   = System.Convert.ToInt32(oclussed.SMaterial()[0]);
                    WallFX.lowpassResonanceQ = System.Convert.ToInt32(oclussed.SMaterial()[1]);
                }
                else
                {
                    WallFX.cutoffFrequency = (22000);
                }
            }
            else
            {
                WallFX.cutoffFrequency = (22000);
            }
        }
        else
        {
            MainSound.volume = 0;
        }
    }