/* * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * Licensed under the Oculus SDK License Agreement (the "License"); * you may not use the Oculus SDK except in compliance with the License, * which is provided at the time of installation or download, or which * otherwise accompanies this software in either electronic or hard copy form. * * You may obtain a copy of the License at * * https://developer.oculus.com/licenses/oculussdk/ * * Unless required by applicable law or agreed to in writing, the Oculus SDK * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using Meta.WitAi; using Meta.WitAi.Requests; using UnityEngine; using UnityEngine.UI; namespace Oculus.VoiceSDK.UX { [RequireComponent(typeof(Button))] public class VoiceActivationButton : MonoBehaviour { // The button to be observed private Button _button; // The button label to be adjusted with state private Text _buttonLabel; [Tooltip("Reference to the current voice service")] [SerializeField] private VoiceService _voiceService; [Tooltip("Text to be shown while the voice service is not active")] [SerializeField] private string _activateText = "Activate"; [Tooltip("Whether to immediately send data to service or to wait for the audio threshold")] [SerializeField] private bool _activateImmediately = false; [Tooltip("Text to be shown while the voice service is active")] [SerializeField] private string _deactivateText = "Deactivate"; [Tooltip("Whether to immediately abort request activation on deactivate")] [SerializeField] private bool _deactivateAndAbort = false; // Current request private VoiceServiceRequest _request; private bool _isActive = false; // Get button & label private void Awake() { _buttonLabel = GetComponentInChildren(); _button = GetComponent