연습 - 런타임에서 공간화 활성화 및 비활성화
이 단원에서는 런타임에 공간화를 사용하거나 사용하지 않도록 설정하고 Unity 편집기 및 HoloLens 2에서 공간화를 테스트하는 방법을 알아봅니다.
공간화 컨트롤 스크립트 추가
프로젝트 창을 마우스 오른쪽 단추로 클릭하고C# 스크립트>를 선택하여 새 C# 스크립트를 만듭니다. 스크립트에 적합한 이름을 입력합니다. 예를 들어 SpatializeOnOff입니다.
프로젝트 창에서 스크립트를 두 번 클릭하여 Visual Studio에서 엽니다. 기본 스크립트 내용을 다음으로 바꿉니다.
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Audio; [RequireComponent(typeof(AudioSource))] public class SpatializeOnOff : MonoBehaviour { public GameObject ButtonTextObject; //public AudioMixerGroup RoomEffectGroup; //public AudioMixerGroup MasterGroup; private AudioSource m_SourceObject; private bool m_IsSpatialized; private TMPro.TextMeshPro m_TextMeshPro; public void Start() { m_SourceObject = gameObject.GetComponent<AudioSource>(); m_TextMeshPro = ButtonTextObject.GetComponent<TMPro.TextMeshPro>(); SetSpatialized(); } public void SwapSpatialization() { if (m_IsSpatialized) { SetStereo(); } else { SetSpatialized(); } } private void SetSpatialized() { m_IsSpatialized = true; m_SourceObject.spatialBlend = 1; m_TextMeshPro.SetText("Set Stereo"); //m_SourceObject.outputAudioMixerGroup = RoomEffectGroup; } private void SetStereo() { m_IsSpatialized = false; m_SourceObject.spatialBlend = 0; m_TextMeshPro.SetText("Set Spatialized"); //m_SourceObject.outputAudioMixerGroup = MasterGroup; } }비고
공간화를 사용하거나 사용하지 않도록 설정하기 위해 스크립트는 spatialBlend 속성만 조정하고 공간화 속성을 사용하도록 설정합니다. 이 모드에서 Unity는 여전히 볼륨 곡선을 적용합니다. 그렇지 않으면 사용자가 원본에서 멀리 떨어져 있을 때 공간화를 사용하지 않도록 설정하면 볼륨이 갑자기 증가하는 것을 들을 수 있습니다.
공간화를 완전히 사용하지 않도록 설정하려면 SourceObject 변수의 공간화 부울 속성도 조정하도록 스크립트를 수정합니다.
스크립트를 연결하고 단추에서 드라이브
계층 구조에서 쿼드 를 선택합니다. 검사기 창에서 구성 요소 추가 단추를 사용하여 SpatializeOnOff(스크립트)를 추가합니다.
계층 구조 창에서 PressableButton_32x32mm_IconAndTextUnder>TextLabelUnder를 찾습니다. Hierarchy에서 Quad 개체를 선택한 상태에서 검사기 창에서 Spatialize On Off(스크립트) 구성 요소를 찾아 서 TextLabelUnder 구성 요소를 단추 텍스트 개체 필드로 끌어서 놓습니다.
단추가 해제될 때 SpatializeOnOff 스크립트를 호출하도록 단추를 설정하려면 상호 작용 가능한 스크립트를 구성해야 합니다. 계층 구조 창에서 PressableButton_32x32mm_IconAndTextUnder 선택합니다. 검사기 창에서 누름 단추 구성 요소를 찾아 + 이벤트 아래의 아이콘을 선택합니다.
[계층 구조] 창에서 PressableButton_32x32mm_IconAndTextUnder 개체를 선택한 상태에서 [계층 구조] 창에서 [Quad ] 개체를 클릭하고 방금 추가한 이벤트의 빈 없음(개체) 필드로 끌어서 ButtonParent 개체가 이 단추에서 단추 클릭 이벤트를 수신 대기하도록 합니다.
함수 없음 드롭다운을 선택한 다음 SpatializeOnOff>SwapSpatialization()을 선택하여 공간 오디오를 켜고 끕니다.