Cvičení – povolení a zakázání prostorovosti v době běhu
cs-CZ: V této lekci se naučíte, jak za běhu povolit a zakázat prostorovou funkci v editoru Unity a HoloLens 2 a jak otestovat tuto funkci.
Přidání skriptu pro prostorové řízení
Klikněte pravým tlačítkem do okna Projekt a zvolte Vytvořit>skript jazyka C# a vytvořte nový skript jazyka C#. Zadejte vhodný název skriptu; například SpatializeOnOff.
Poklikáním na skript v okně Projekt ho otevřete ve Visual Studio. Nahraďte výchozí obsah skriptu následujícím kódem:
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; } }
Poznámka
Chcete-li povolit nebo zakázat prostorovou úpravu, skript upraví pouze vlastnost spatialBlend, přitom ponechá vlastnost prostorovou povolenou. V tomto režimu Unity stále používá křivku Volume. Jinak, pokud by uživatel zakázal prostorovou funkci, když je daleko od zdroje, uslyší náhlé zvýšení hlasitosti.
Pokud dáváte přednost úplnému zakázání prostorové úpravy, upravte skript tak, aby také byla upravena booleovská vlastnost SourceObject proměnné Spatialization.
Připojte skript a spusťte ho z tlačítka.
V hierarchii vyberte Quad. V okně inspektoru použijte tlačítko Přidat komponentu k přidání SpatializeOnOff(Script).
V okně Hierarchie vyhledejte PressableButton_32x32mm_IconAndTextUnder>TextLabelUnder. Pokud je objekt Quad stále vybraný v hierarchii, v okně inspektoru vyhledejte komponentu Spatialize On Off (Script) a přetáhněte komponentu TextLabelUnder do pole Button Text Object.
Chcete-li nastavit tlačítko pro volání skriptu SpatializeOnOff po uvolnění tlačítka, musíte nakonfigurovat skript interakce. V okně Hierarchie vyberte PressableButton_32x32mm_IconAndTextUnder. V okně inspektoru vyhledejte komponentu stisknutelným tlačítkem a vyberte ikonu + pod událostí OnClicked ().
Pokud je objekt PressableButton_32x32mm_IconAndTextUnder stále vybraný v okně Hierarchie, klikněte a přetáhněte objekt Quad z okna Hierarchie do prázdného pole None (Object) události, kterou jste právě přidali, aby objekt ButtonParent naslouchal události kliknutím na tlačítko z tohoto tlačítka.
Vyberte rozevírací seznam Bez funkce a poté vyberte SpatializeOnOff>SwapSpatialization () pro zapnutí a vypnutí prostorového zvuku.