8:47 theAudioManager = AudioManager.instance 할 때 AudioManager 스크립트의 Start 함수에서 AudioManager instance = this; 가 먼저 실행된다는 보장이 없음으로 예외 오류가 발생할 수 있습니다. 'AudioManager instance = this; '를 Start 함수가 아닌, Awake 함수에 옮겨야 오류가 나지 않습니다.
넵. 오디오소스를 하나만 두고 PlayOneShot 메소드로 재생가능합니다. 다만 PlayOneShot은 호출될 때마다 새로운 Object를 생성합니다. AudioManager를 이용한 방식은 미리 Object를 생성해서 그 안에서 반복 실행을 하기 때문에 Pooling 개념입니다. 단순 퍼포먼스만 봐도 상대적으로 해당 방식이 나으니, 코드 몇줄 더 추가해서 AudioManager를 구현하는 편이 이후를 생각해서 편할 수 있을 겁니다. 확장성, 기능의 다양성을 위해서 말이죠. 그걸 위한 가장 간단한 구성이 해당 강좌 동영상이구욤. 감사합니다.
오디오 관련 참조문제가 생긴다면
Edit - Project Setting - Script Excution Order - +버튼 - AudioManager 선택 - -50 설정 - apply
해주면 됩니다.
8:47 theAudioManager = AudioManager.instance 할 때
AudioManager 스크립트의 Start 함수에서 AudioManager instance = this; 가 먼저 실행된다는 보장이 없음으로 예외 오류가 발생할 수 있습니다.
'AudioManager instance = this; '를 Start 함수가 아닌, Awake 함수에 옮겨야 오류가 나지 않습니다.
덕분에 문제를 해결했네요 감사합니다
위와같은 실행순서 오류를 방지하기 위해선 Facade 파샤드 기법을 알아보시고, 절차적 으로 load와 load의 끝맺음을 알아보시는 것도 추천드립니다
강의 감사합니다
정말 편한 시스템입니다! 잘 배우고 있습니다.
감사합니다~~ 다음에는 좋은 유료강좌 해주세요 ㅎㅎ
학원다니던 시절에 포트폴리오로 네크로댄서류 리듬게임만든다고 개고생했었는데 그때 이 강좌가 있었다면 정말 큰도움이됐었겠네요 좋은강의 감사합니다.
싱크 맞추는 게 확실히 힘들긴 하죠 ㅜ . 많은 분들에게 도움이 되었으면 좋겠네요. ㅎ
sfxPlayer인스펙터에서 오디오 소스를 여러개를 사용하는 이유가 있을까요? 하나의 오디오소스로도 가능하지 않을까요?
넵. 오디오소스를 하나만 두고 PlayOneShot 메소드로 재생가능합니다.
다만 PlayOneShot은 호출될 때마다 새로운 Object를 생성합니다.
AudioManager를 이용한 방식은
미리 Object를 생성해서 그 안에서 반복 실행을 하기 때문에 Pooling 개념입니다.
단순 퍼포먼스만 봐도 상대적으로 해당 방식이 나으니, 코드 몇줄 더 추가해서 AudioManager를 구현하는 편이 이후를 생각해서 편할 수 있을 겁니다.
확장성, 기능의 다양성을 위해서 말이죠.
그걸 위한 가장 간단한 구성이 해당 강좌 동영상이구욤. 감사합니다.