Unity_개발일지_17

홍신영·2024년 10월 25일
0

Unity

목록 보기
19/62

Audio Source활용하기

이번에 만들어 볼 것은 뮤직존으로 특정 범위에 들어가면 음악이 서서히 fade효과를 주며 올라갔다 나가면 서서히 줄어드는 것을 만들어 볼 예정이다.

Mathf.Approximately

Approximately:
근사값이면 같도록 처리해주는 함수로, 1.0f = 1.0f인가 했을 때, 소숫점 000000.1이라도 다르게 컴퓨터가 인지 할 수 있기에 이를 방지하고 할 때 사용된다.

Mathf.MoveTowards

MoveTowards(a,b,c): 점점 a에서 b까지 커지는데 c의 속도로 커지게 하는 함수이다. fade효과를 주기위해 사용했다.

if (!Mathf.Approximately(audioSource.volume, targetVolume)) 
        {
            audioSource.volume = Mathf.MoveTowards(audioSource.volume,
            targetVolume, (maxVolume / fadeTime) * Time.deltaTime); 

        }

위 코드처럼 오디오의 볼륨이 목표로 하는 볼륨에 가깝다면(근사값 이라면),
!니까 가깝지 않다면, 오디오의 볼륨을 오디오의 볼륨에서, 목표로 하는 볼륨까지, 전체볼륨 / fade볼륨에 델타타임을 곱해주면(업데이트문에 있음) 소리에 Fade 효과를 줄 수 있다.

특정 지역은 OnTrigger로 만들어준다.

    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            Debug.Log("들어왔다");
            targetVolume = maxVolume;
        }
    }
    private void OnTriggerExit(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            Debug.Log("나갔다");
            targetVolume = 0;
        }
    }

들어오면 타겟 볼륨을 최대볼륨으로 해서 아까 했던 fade효과대로 볼륨이 상승.
나가면 타켓 볼륨을 0으로 해서 줄어들도록 하면 된다.

profile
게임 클라이언트 개발자

0개의 댓글