안녕하세요?


지난번 포스팅에서는 유니티5상에서 에러가 발생하였는데, 이번 포스팅에서는 이 에러를 바로 잡고서, 이번에는 상점씬에서 동전이 부족하면 부족하다는 메세지 판넬이 뜨는 것으로 어떻게 만들고자 합니다.



결국 하는 수 없이 AudioSource라는 형식의 변수를 ShopManager.cs에서 선언을 해 주도록 합니다.



그리고 나서 유니티5로 돌아와서 해당하는 게임 오브젝트를 드레그 앤 드롭으로 집어 넣어 주도록 합니다.



위 스크린샷처럼 버튼을 누를때 소리가 들리도록 만들어 주도록 합니다.



그리고 나서 다시 NoMoneyPanel 게임 오브젝트를 유니티5 상에서 선택하도록 합니다.



그리고 처음부터 활성화가 되면 안되기 때문에, 유니티5 상에서는 활성을 꺼 주도록 합니다.




그리고 ReduceCash() 메소드에서 위 스크린샷과 같이 if문을 지정해 주도록 합니다.



그런데 계속해서 버튼의 효과음이 재생되지 않는 문제가 발생했기에, 위 스크린샷처럼 여러가지 시도를 해 보았습니다.



결국 Awake에서 나오는 것을 봐서는 패널이 먼저 비활성화가 되어서 효과음이 재생되지 않는다는 것을 알 수 있었습니다. 그래서 먼저 버튼의 효과음이 재생이 되고 나서, 정말 조금의 시간이 있을 후에 패널이 비활성화 되는 단계를 밟아야만 하는데, 이를 위해서는 코루틴이 필요하다는 생각이 들었습니다.



그리고 나서 코루틴을 써서 위 스크린샷처럼 코딩을 하였습니다. 한동안 오타때문에 실행이 안되다가 이래저래 실행을 하는 데 성공했습니다.



일단 실행까지는 성공하는 것을 볼 수 있었습니다.



이번에야 말고 어떻게 돈이 부족하다는 패널이 뜨고, 닫는데 효과음까지 구현이 잘 되어 있다는 것을 볼 수 있습니다. 하지만 여기서 약간의 문제가 발생하였는데, 정작 게임내에서 모았는 동전 = PlayerPrefs에 있는 동전 갯수가 되기 때문에, 이전에 모았는 동전이 초기화 되는 문제가 발생하였습니다. 이 문제를 해결하고 나서 다음 포스팅을 올릴 것을 약속드립니다.

+ Recent posts

티스토리 툴바