버튼을 눌렀을 때, 버튼음을 집어넣었다.


그런데, 버튼을 빠르게 누르면 누른 횟수대로 사운드가 재생된다.


어떻게 이 문제를 해결할까?


1. PlayOneShot()함수 앞에 Stop()함수를 먼저 실행한다.


--> 안 된다. 짧아서 그런지 몰라도 .


매우 간단하게 해결 할 수 있다.


바로,


isPlaying을 잘 사용하면 된다.


public AudioSource soundSource;
public AudioClip[] sound;

if (soundSource && sound[3])
if (soundSource.GetComponent<AudioSource>().isPlaying) return;
else soundSource.GetComponent<AudioSource>().PlayOneShot(sound[3]);


핵심은 isPlaying을 사용하는 것이다.


만약(if)현재 플레이 중이라면 return 즉, 아무것도 진행하지 말라는 의미이며,


그렇지 않다면(=플레이 중이 아니라면else) PlayOneShot을 사용하여 1회 플레이하라는 의미이다.


이렇게하면 버튼을 미친듯이 눌러도 이벤트는 발생하지만 isPlaying에 막혀 사운드는 출력되지 않는다.


이상으로 버튼 사운드 중복될 때 해결 방법을 알아봤다.

Posted by sungho88
,