官方案例解读1

1:首先,我们要有鼠标,键盘,等输入设备。在hololens中,鼠标就是你的光标,光表示跟随你的头部运动的。你的tap click就是鼠标的点击。

官方案例链接

101 入门

在我们看来,光标管理,输入管理。凝视管理,语音管理都是分开的。在这里 我们先定义一条射线,这条射线从头部(camera发出)

如果他碰到了某个物体,那么光标就停在他身上,且进行一个始终向上的旋转


在这个案例中,没有很多的功能,只是一个入门案例,那么我们要实现的就是点击一个物体,他消失。

所以我们需要一个凝视手势管理器 我们首先需要建立一个手势识别器(_GestureRecognizer = new GestureRecognizer();)实现点击功能(_GestureRecognizer.TappedEvent)在这里我们使用匿名函数来实现这个点击的功能,他有点类似于Addlistener()=>xxx();如果当前有凝视对象的话,让他执行我们需要的方法。


那么这样,只要我们执行这个OnseleztZX这个方法,(类似发送消息)就能够实现点击。


然后开启手势识别器(_GestureRecognizer.StartCapturingGestures();)。注意,如果我们不需要的话就应该停掉(_GestureRecognizer.StopCapturingGestures();),既然是凝视手势管理器,我们任然需要在update方法里面实现一个射线的基本功能,因为他没有和cursor这个类相结合。


这样。就可以了。戳这里下载资源包

210 凝视 

这节既然是凝视,那就和光标相关了,我们主要是做一个光标的反馈。

在hololens中,光标分类很普通的几种:正常时候的光标,按下的光标,抬起的光标,旋转模型时候的光标,移动模型时候的光标,拖拽模型时候的光标,缩放模型时候的光标。

我们任然需要一个手势管理器来实现我们的点击功能


我们还需要一个凝视的管理器(GazeManager)来实现我们游标正常的工作

 我们先定义一些基本的属性,来增加他的可拓展性(基本的)。

游标所能到达的最远的距离。

是否碰到物体

射线信息

碰到物体的位置

转向 

我们可以调用其中的某些参数,来实现一些功能。


借来来时游标管理类,我们可以通过目前的一些状态信息,第一通过状态信息显示或者不显示当前的光标,第二,通过生成销毁的方法更新当前的光标(我们在手势会讲到)。例如


当凝视管理器中的射线碰到某个物体的时候,我们才让CursorOnHolograms显示。不然就不显示。

当然,最后我们要给他一个位置的肯定。


这样就可以了戳这里下载资源包

 211 手势

既然是手势,我们先顶一个手势管理的类(GestureManager)

先定义一些基本的手势

在Awake方法中订阅手势


我们还需要取消订阅收拾


这些都是实现手势的方法,这里类似事件


假如实现一个导航手势


这是原汁原味的写法

如果你不清楚你当前需要订阅那种手势,你只需要将光标定位到GestureRecognizer上,F12就可以看到所有你能够订阅的手势。在最后你能看到实现这些手势的方法所用到的参数。这些参数都是有很重要意义的。这里我们截中间的一部分图


在这里很重要的一点是,之前我们的凝视和点击的实现用到的射线是两个,但是其实看作是一个。因此我们需要一个凝视的类(InteractibleManager)来管理。那么凝视能做什么?当光标进入的时候,物体发亮?跳动?当凝视退出的时候,物体不亮。不动。我们采用类似点击的方式来实现

首先我们定义两个物体


一个是当前的,一个是旧的。这里的说法有两种,第一,你先注视一个物体a,然后又注视了一个物体b,那么a就是下面的。b就是上面的,显然a是旧的。第二种是。你一直注视一个物体。这个物体即使新物体也是旧物体。


他在Update中的实现。这里的Interactible是一个稳定用户头部光标的类。他的作用就是如此。当你的光标注视这某个物体的时候,他发送一条消息给GzaeEnter。当离开的时候给GazeExit发送一条消息。


当然,你只要实现了GzaeEnter和Exit方法,不就实现了IFocusable这个接口嘛。

当然,我们还需要实时反馈光标的各种形态。那么在凝视(GazeManager)的基础上我们新加一个类(CursorFeedback),这个类控制光标的各种反馈状态。

我们通过这个方法来每次实例化一个光标

好了,到此为止了,在这里我们说了很多的基本功能,但这些基本功能并没有贴出他在实际应用中和hololens的结合,我们将在后面的案例中详细的说明。戳这里下载手势资源包

 220  空间 声音

 在使用声音之前,我们需要在unity中设置一下他相关的属性


这是一张3d声音设置的属性图。

首先,我们还要在这里做一些基本的设置,在Edit—>Audio里面


而在holokit中的空间声音文件夹下有两个UAudioManager和UAudioMiniManager脚本,这两个脚本提供了一些基本的声音的设置,他还使用了holokit提供的差值的方法。实现了声音在空间的展示。当然要想实现好的空间声音的效果,你还需要在声音的处理和优化方面做一些工作。戳这里下载空间声音所需的资源包,你会发现他是一个很有意思的案例。

 212 空间声音

就当做语音吧,由于hololens内置的语音库只能支持英文,不支持中文,所以这个方面并不是很火,而且由于他实现的方式简单。所以我们只是说几种实现的方式而已。

第一种:我们建一个脚本,将文字转化成语音(大写)


通过switch方式,将我们要执行的情况列举出来。然后添加SpeechInputHandler脚本,


最后我们在这里做一个总结(另外一个脚本)


他也配合了按键的实现。

第二种:我们先建立一个脚本。将每一种要实现语音做成一种方法。

通过

这个脚本展示出来,而上面的KeyWord就是你要执行的语音。首字母大写。由于我们并没有关联所以我们还需要一个

将他挂在语音代码的那个物体上作为接收。

第三种方法:

我们在这里添加所需要的语音执行的方法


他的计算速度是最好的。

我们还有一个很主要的功能,就是语音听写。注意,由于某些原因,语音识别和听写是不能同事开启的。关于语音听写,我们会在后面的项目中具体说到。

 230 空间扫描

对,你没看错,这个已经很详细了。用

预制体和他自带的脚本就很容易实现。在这里举一个很小的例子。增加这个预制,实现点击的时候掉落一个小球。你会发现,球会掉落到桌面或者地上。是的。关于空间扫描这里就不细说了。他涉及到空间物体识别,空间物体方式,空间扫描功能,空间扫描理解,锚点,共享,空间声音。这个在后面的项目中会具体的讲到。如果你迫不及待,请参考官方案例空间扫描官方案例戳这里下载所需的资源包。

  240共享假全息图

戳这里下载所需的资源包。首先你要有两台以上的hololens设备。其次,你需要在python和Socket photon的知识。

这里说一下为什么是假全息图呢?这种东西和一些市面上卖的假的羊肉是一样的。不服看这里


原文链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容