• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

Unity Sound관련해서 iOS와 Android App개발시 질문이 있습니다.

23.09.01 01:34 작성 조회수 266

0

안녕하세요, 최근 회사에서 Unity로 Sound Heavy한 프로젝트를 진행하고 있는데, 유니티로 iOS, Android앱을 만드는 중에 있습니다.

사실 강의내용에 벗어난 내용인것 같아서 질문드리지 않는게 좋다고 생각했지만, 정말 많은 리서치를 했음에도 해결하지 못해서 Sound관련 강의를 모두 수강하고 한번 여쭤보게 됬습니다.

 

iPhone 오른쪽에 전원버튼 눌러서 Background 모드로 전환되면(화면을 꺼버리면) Play, PlayOneShot과 같은 Unity API를 사용하지 못하고 결정적으로 Update함수가 실행자체가 안되는데요, 제가 Update함수에 Sound Play관련된 코드를 작성해 놓았는데, 저는 이게 화면을 꺼도 플레이가 될거라고 생각했었는데되지않아서 해결중에 있습니다.

이걸 혹시 Background 모드여도 Sound를 Play할수 있게끔 할수 있을까요??

유니티 공식 Discord에도 물어봤는데, 애초에 화면이 꺼지면 게임을 플레이를 하는게 아니니까 당연히 Update함수는 안돌아가게끔 디자인하지 않겠냐고 답변을 줘서 정말 맞는말인것 같아서 제가 해당 앱을 개발할때 애초에 Unity를 선택한게 잘못된것같다라는 생각이 듭니다.

현재로서는 iOS와 Android Native Code를 각각 개발하는것이 해결방법이라고 생각하고 있는데, 그럴꺼면 그냥 차라리 애초에 Unity로 앱을 만들지 않고 Native App을 직접 만드는게 낫다라고 생각이 듭니다.

관련해서 도움을 받을 수 있을까요? 앞서 말씀드린것과 같이 강의내용에 벗어난것 같아서 답변주시지 않으셔도 됩니다 감사합니다.

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.09.03

안녕하세요, 인프런 AI 인턴이에요.
Sound Heavy한 프로젝트를 Unity로 개발하고 계시다니 대단하네요!

iOS나 Android 앱에서 백그라운드에서도 Sound를 재생할 수 있도록 하려면, 해당 플랫폼의 Background Audio 기능을 사용해야 합니다.
iOS의 경우, AVAudioSession을 사용하여 백그라운드에서도 오디오를 재생할 수 있게 설정해야 합니다. Unity에서는 AVAudioSession을 사용하지 않기 때문에 Native 코드를 작성하여 Unity에서 사용할 수 있는 API를 만들어야 합니다. 또는 플러그인을 이용하여 해당 기능을 활용할 수도 있습니다.

Android의 경우, Unity에서는 오디오를 백그라운드에서도 재생할 수 있도록 AudioManager를 사용합니다. Unity에서 제공하는 AudioSettings.Android.audioSessionId를 사용하여 해당 기능을 활성화할 수 있습니다. 해당 기능을 사용하려면 AndroidManifest.xml 파일에 오디오 스테이지 활성화 또는 오디오 포커스 설정이 필요할 수 있습니다.

이러한 방법들을 이용하여 iOS와 Android 앱에서 백그라운드에서도 Sound를 재생할 수 있게끔 구현할 수 있습니다. 하지만 어떤 방식을 선택하느냐에 따라 구현 방법이 달라질 수 있으니, 각 플랫폼에 맞는 문서나 예제들을 참고하시면 좋을 것 같아요. 추가로 Unity 포럼이나 스택 오버플로우에서 관련 내용을 찾아볼 수도 있습니다.

Unity로 Sound Heavy한 프로젝트를 개발하셨는데, Unity에서의 Sound 관련 API를 활용하는 것이 적합한지에 대해 고민하시는 것 같습니다. 개발할 앱의 성격과 제약사항에 따라서 Unity 외의 다른 기술이 더 적합할 수도 있습니다. 하지만 Unity는 강력한 기능과 생산성을 제공하므로 Sound Heavy한 앱 개발에도 적합한 도구입니다. 펌웨어 레벨에서 개발을 해야한다면 Native 개발을 고려해보실 수도 있겠네요.

현재 문제를 해결하기 위해 추가적인 조사와 시도를 하셨지만 여전히 해결되지 않는다면, 더 구체적인 코드나 환경 정보를 제공해주시면 더 정확한 도움을 드릴 수 있을 것 같습니다. 세부적인 내용을 알려주시면 더 자세한 도움을 드릴 수 있을 거예요. 화이팅하세요!