HoloLens2开发--基础交互

基本翻译,原文请见https://docs.microsoft.com/en-us/windows/mixed-reality/mrtk-101,简单写吧,详细的看原文去

1、在UnityEditor中仿真交互:

相机上下前后左右,QEWSAD(原文说QE是转手,我感觉是上下移动相机);

相机旋转,右键拖动;

左手:按住左边shift;

右手:按住空格键;

手上下左右移动:鼠标移动;

手前后移动:滚轮,其实戳也是这个,前后移动下手,可以实现戳一下的效果;

手旋转:ctrl+space+(抓取后)拖动

手抓取:分情况,如果手常显,则左键单击(其实是切换抓取与放开的操作),如果不常显,则按住左键;

手单击:常显时其实响应的是pressrelease,不常显时需要按住那么一小下,像平常电脑那样单击容易没反应;

其实仿真交互也是可以自定义的,方法就是通过修改profile,比如需要在UnityEditor中使用打开手掌这个手势,默认情况下是没有的,那可咋整?

首先找到管input的profile:在Hierarchy中找到MixedRealityToolkit,在他的Inspector中找到ixedRealityToolkit组件,此时他的下面有好多比如Camera、Input,可选项都是灰的,因为默认情况下都是用的默认Profile,不支持修改,单击Copy & Customize可以创建一个拷贝,就可以修改啦,放心改,不影响原来的Profile;

然后想改Input,仍旧是灰的,继续clone;

想在UnityEditor中把flat palm加上,是InputSimulation,在InputDataProviders里,有个InputSimulationService,就是他管着输入仿真,继续clone;

在Articulated,也就是HandControlSetting里,并没有相关手势的选项,在Gesture里有,可以定义中键为flat,就可以实现flat了。

2、抓取物体

在物体上添加ManipulationHandler.cs和NearInteractionGrabbable.cs两个脚本,可以实现近程抓,远程抓;

ManipulationHandler:支持近程和远程交互;

NearInteractionGrabbable:直接抓(大概是近程抓的意思吧,猜的)。

这个顺便支持了HoloLens的gaze和tap(原文这么说,没试)。

3、resize

ManipulationHandler顺便支持了两手操作,可以旋转和resize;

好的,两只手如何同时操作(在UnityEditor中):按TY保持左右手始终出现在场景中,先按住左边shift保持左手选中,单击下鼠标左键,可以保持左手的抓住姿势,再按住space选中右手,单击左键保持右手的抓住姿势,拖动鼠标操作物体,至于是否可以同时操作两个手~~不清楚。

4、旋转

大致旋转:ManipulationHandler支持了;

精确旋转:添加 BoundingBox.cs,其实就是多了几个边界控制点,可以控制绕哪个轴旋转。

5、响应输入事件InputEvent

加个PointerHandler.cs,有四种事件: OnPointerDown(), OnPointerUp(), OnPointerClicked(), OnPointerDragged()。

OnPointerDown():弄不明白;

OnPointerUp():弄不明白;

OnPointerClicked():单击会触发;

OnPointerDragged():拖动会触发;

6、视觉反馈

加个Interactable.cs,选择InteractableColorTheme,设置颜色就好。

这个脚本里还可以设置别的主题,看名称就能理解个大概,还没用过,有坑就说说,没坑就不多讲了;

悬停灯(hover light)、接近灯(proximity light):新建一个材质球,用这个shader:Mixed Reality Toolkit > Standard,勾选hover light、proximity light,可以有接近灯光效果,勾选BorderLight可以有描边;

Interactable下面也有个Events,跟PointerHandler功能上是否有重复?大概都一样;

7、声音反馈

物体上加个AudioSource,Interactable或PointerHandler中选一个事件(比如click),选AudioSource.PlayOneShot(),再加个声音就好了。

8、使用HoloLens2的button

一般pressablebutton里都有Interactable。

9、物体跟随人、手等

添加一个 RadialView.cs,同时会被动添加一个SolverHandler。

SolverHandler可以选择跟踪的对象,头部、手部等;

RadialView物体自主跟随的实际控制。

10、让物体总是对着人

Billboard.cs。

 

 

 

 

你可能感兴趣的:(HoloLens2开发--基础交互)