hololens凝视物体、单击双击、语音控制、蓝牙

1、用unity开发2、在HoloLens toolkit中找到TextToSpeech添加到场景中3、添加KeywordManager.cs到场景中using orange;using System.Collections.Generic;using System.Linq;using UnityEngine;using UnityEngine.Events;using UnityEngine.Windows.Speech;/// <summary>/// 语音控制类,需
摘要由CSDN通过智能技术生成

1、用unity开发
2、在HoloLens toolkit中找到TextToSpeech添加到场景中
3、添加KeywordManager.cs到场景中

using orange;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Windows.Speech;

/// <summary>
/// 语音控制类,需要在start方法中初始化。
/// 使用方法:
/// 1、在场景对象中添加KeywordManager脚本
/// 2、在需要接收语音控制的脚本中,获取到KeywordManager实例,然后注册 OnSpeeked 事件
/// </summary>
public class KeywordManager : MonoBehaviour
{
    public delegate void OnSpeekHandler(SpeechKeys key);

    private KeywordRecognizer keywordRecognizer;
    private List<string> keys;

    public event OnSpeekHandler OnSpeeked;

    private void Start()
    {
        //从枚举对象中获取识别命令
        string[] values = System.Enum.GetNames(typeof(SpeechKeys));
        keywordRecognizer = new KeywordRecognizer(values);
        keys = new List<string>();
        keys.AddRange(values);
        keywordRecognizer.OnPhraseRecognized += KeywordRecognizer_OnPhraseRecognized;
        keywordRecognizer.Start();
    }

    void OnDestroy()
    {
        if (keywordRecognizer != null)
        {
            StopKeywordRecognizer();
            keywordRecognizer.OnPhraseRecognized -= KeywordRecognizer_OnPhraseRecognized;
            keywordRecognizer.Dispose();
        }
    }

    /// <summary>
    /// 识别完成
    /// </summary>
    /// <param name="args"></param>
    private void KeywordRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args)
    {
        if (keys.Contains(args.text))
        {
            //转换为枚举类型,触发事件
            SpeechKeys key = (SpeechKeys)System.Enum.Parse(typeof(SpeechKeys), args.text);
            if (OnSpeeked != null)
            {
                OnSpeeked.Invoke(key);
            }
        }
    }

    /// <summary>  
    /// Make sure the keyword recognizer is off, then start it.  
    /// Otherwise, leave it alone because it's already in the desired state.  
    /// </summary>  
    public void StartKeywordRecognizer()
    {
        if (keywordRecognizer != null && !keywordRecognizer.IsRunning)
        {
            keywordRecognizer.Start();
        }
    }

    /// <summary>  
    /// Make sure the keyword recognizer is on, then stop it.  
    /// Otherwise, leave it alone because it's already in the desired state.  
    /// </summary>  
    public void StopKeywordRecognizer()
    {
        if (keywordRecognizer != null && keywordRecognizer.IsRunning)
        {
            keywordRecognizer.Stop();
        }
    }
}

4、添加GestureManager.cs到场景中

using orange;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.WSA.Input;

public class GestureManager : MonoBehaviour
{

    private GestureRecognizer recognizer;

    public delegate void OnGestureClick();
    public delegate void OnGestureDoubleClick();

    private List<OnGestureClick> onClicks = new List<OnGestureClick>();
    private List<OnGestureDoubleClick> onDoubleClicks = new List<OnGestureDoubleClick>();

    public void AddGestureClick(OnGestureClick onClick)
    {
        if (onClick == null || onClicks.Contains(onClick)) return;
        onClicks.Add(onClick);
    }

    public void RemoveGestureClick(OnGestureClick onClick)
    {
        if (onClick != null && onClicks.Contains(onClick))
        {
            onClicks.R
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hololens2蓝牙的问题可能有多种原因。根据引用中的代码,它是一个用于扫描BLE设备的代码示例。这段代码是使用Unity引擎和Windows.Devices.Bluetooth命名空间编写的,适用于使用Hololens2进行开发的场景。 引用提到了在使用台式机进行Hololens2开发时遇到的问题,报错信息没有提到蓝牙相关的内容。所以,不清楚这个问题与Hololens2的蓝牙连接有关。 引用提到了在配对Hololens2时遇到的问题。作者尝试了多种方法,包括重装VS2019和更新Hololens2系统,最后通过重置Hololens2系统解决了问题。 综上所述,如果您遇到了Hololens2蓝牙相关的问题,我建议您检查以下几个方面: 1. 确保您的Hololens2设备已经正确配对并连接到您的台式机或开发环境。 2. 检查您的开发环境和代码是否与Hololens2的要求兼容。 3. 尝试重置Hololens2系统,以解决可能存在的配置或软件问题。 根据提供的信息,无法提供更具体的解决方案。如果问题仍然存在,请参考Hololens2的官方文档或寻求Hololens2开发社区的帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [hololens凝视物体单击双击语音控制蓝牙](https://blog.csdn.net/id6831/article/details/118640172)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [HoloLens2开发笔记-解决VS2019无法与HoloLens2配对,部署失败的问题](https://blog.csdn.net/Apple_Coco/article/details/120210821)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值