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으로 해서 줄어들도록 하면 된다.