hololens学习第二天

来源:互联网 发布:火车头采集js 编辑:程序博客网 时间:2024/06/10 18:43

调试的错误就是编程给你最好的东西,因为在每个错误上面都标志着前进的一步。吐舌头2017.5.4 星期四 多云

目标:

(1)创建一个随“视线”移动的光标

  • InputManager.prefab 
    输入管理器,用来管理视线、手势等输入源。 
    这个管理器还提供了在编辑器中模拟输入的功能:

    • Shift:左手
    • Space:右手
    • 鼠标移动:模拟手移动
    • 鼠标左键:模拟手点击
    • 鼠标右键:模拟视线移动
    • WSAD/QE:摄像机移动
  • Cursor.prefab 
    工具包自带光标之一,主要实现凝视物体时,出现附着圆环,否则光标发亮。 
    其他几个自带光标如下:

    • BasicCursor.prefab:基础光标,凝视物体出现附着圆环,否则不显示。
    • CursorWithFeedback.prefab:手势检测光标,当检测到手时,会变成一个手势图标。
    • DefaultCursor.prefab:默认光标,模拟Hololens系统内置光标。
(2)点击Cube,Cube坠落


没实现这个接口的方法: 声明了一个接口只是定义了一些功能,或者说定义了要完成一些功能的契约,要使用这个功能,还必须用类来实现这个接口。




  


实践:

对于凝视射线、手势识别和语音命令功能,均建议使用单例来进行管理,这样可以避免功能混乱。同时为凝视设置可视化的指针,可以提高用户的交互体验和效率。

Cursor With Feed back带反馈的游标预设体:这样当凝视在全息对象时,其表面会出现可视化凝视组件。当用户手势被识别到时,会出现一个蓝色的手掌图像,能够贴心地告诉用户可以操作了。

 Input:为KeywordManager.cs组件配置语音命令。语音命令触发时将会执行相应的组件行为。

 当我说出“test”时,机会即会Cube的OnSelect方法,来随机改变Cube颜色。


说明:


Gaze Manager 凝视处理
Gesture Manager手势处理  Gesture input输入  Gesture responder响应
Hands Manager手部处理  Gesturegui dance导航  Gesture draggable拖动
Keyword Manager关键词处理
 release发布

Bloom 手势

这个手势的操作是,打开你的手掌,然后把五指收拢起来,如下图。


Bloom 手势用来打开开始菜单,大部分时候,你只需要一次 Bloom 就可以进入开始菜单,偶尔你会需要做两次。如果你不知道做什么,你也可以 Bloom 一下重新定向。你也可以使用 Bloom 手势暂停游戏或者隐藏开始菜单。

语音

你可以命令 Cortana 带你回到开始界面,你只需要说“Hey Cortana,go home”。

盯视


你要用你的眼睛来移动光标,选择应用等。需要注意的是,你不是移动眼珠就可以移动光标,你的眼睛需要盯着光标,然后移动你的头部。这才是正确的姿势。

Air tap 手势

Air tap(点空气手势),把你的食指向下打落,然后再快速向上扬。这就是“点空气”手势。通过这个手势再加上盯视,你就可以选取应用和其他的全息图。


按住不放

要想实现按住不放的功能,你首先需要使用使用 Air Tap(点空气)手势,食指往下打落,然后不再上扬即可。

滚动。在应用栏上,选择滚动工具,按住不放,直到工具出现,然后慢慢上下或者左右移动你的手。

拖拽。在应用栏上,选择拖拽工具,按住不放,直到工具出现,然后慢慢上下或者左右移动你的手。

放大缩小。在应用栏上,选择 Zoom 工具,按住不放,直到工具出现,向上移动手是放大,向下移动则是缩小。

钉住、解除或卸载应用。按住一个应用磁贴或者整个应用列表不放,然后选择卸载、钉住等功能。

重新定义应用大小。在应用栏,选择调节工具,按住应用窗口角落的蓝色方块不放,移动你的手重新定义尺寸。

移动应用。在应用栏,选择调整工具,眼睛盯着应用窗口不放,将应用窗口放到你想放在的地方。


出现错误:
1.教程与插件版本的不同出现的问题:
Asset with GUID 67e9dad5654047ebbe623cce9dbf7b38 has empty path but has asset time stamp???
GUID 67e9dad5654047ebbe623cce9dbf7b38资产已空的路径但资产时间戳???
请包括一手指导指示的对象。

Please include a GameObject for the Hand Guidance Indicator.
Unity Engine.Debug:Log Error(Object)
HoloToolkit.Unity.Input Module.Hand Guidance:Awake() (at Assets/HoloToolkit/Input/Scripts/HandGuidance.cs:36)
统一引擎。调试:日志错误(对象)
holotoolkit.unity.input模块。一方面指导:awake()(资产/ HoloToolkit /输入/脚本/ handguidance。客服:36)

Null Reference Exception: Object reference not set to an instance of an object
GestureResponder.Start () (at Assets/HoloToolkit/Utilities/Tests/Scripts/GestureResponder.cs:11)

空引用异常:对象引用未设置为对象实例
gestureresponder。开始()(资产/ holotoolkit /事业/测试/脚本/ gestureresponder。客服:11)

Unassigned Reference Exception: The variable Hand Guidance Indicator of Hand Guidance has not been assigned.
You probably need to assign the Hand Guidance Indicator variable of the Hand Guidance script in the inspector.
Unity Engine.Object.Instantiate[Game Object] (Unity Engine.GameObject original) (at C:/buildslave/unity/build/Runtime/Export/Unity EngineObject.cs:202)
HoloToolkit.Unity.Input Module.HandGuidance.Awake () (at Assets/HoloToolkit/Input/Scripts/Hand Guidance.cs:52)
未分配的referenceexception:handguidance变handguidanceindicator尚未分配。
你可能需要在检查指定的handguidanceindicator handguidance脚本变量。
UnityEngine。对象。实例化[对象](unityengine.gameobject原创)(C:/ buildslave /团结/建设/运行/出口/ unityengineobject。客服:202)
HoloToolkit.Unity.InputModule.HandGuidance.Awake()(资产/ HoloToolkit /输入/脚本/ handguidance。客服:52)
2.没有在部署的时候打开真机:

生成(B)



0 0