最近在折腾Hololens,要实现在Hololens中读入三维图像,并进行手势交互,及模拟三维图像的某种运动,这里拿立方体做个展示,具体操作如下:
参考资料:https://docs.microsoft.com/zh-cn/windows/mixed-reality/mrtk-101
1、首先要新建一个项目,打开unity,新建一个project;
2、导入MRTK包(下载链接:https://github.com/Microsoft/MixedRealityToolkit-Unity/releases),Assets->Import Package->Custom Package
3、Mixed Reality Toolkit->Add to scene and Configure,加入后“Hierarchy”层次结构会出现如下红框中所示:
4、在当前场景(此处是GettingStarted)中右键GameObject->3D Object->Cube
5、 手动交互实现:
(1)平移交互实现:
要在哪个物体上做这个处理,就在哪个物体上挂脚本,这里就在Cube上挂ManipulationHandler.cs和NearInteractionGrabble.cs脚本,这两个脚本是在MRTK的Examples里自带的,所以直接Add Component就好(注意,在做这些交互处理前必须要Add Component:Box Collider.cs)
关键参数设置:
(2)缩放,旋转交互实现:
在Cube上挂BoundingBox.cs脚本
关键参数设置:
结果展示:
附加:
设置Cube的透明度:
先要新建材质球,界面下方:Assets右键Create,再material,具体操作如下:
然后将材质球拖入Cube中,设置Shader属性,具体见下图:
再将“Main Color”中的透明度设为100:
运行就可以看到立方体变成透明的了
注意:
绝对坐标系和相对坐标系,如果一个物体在另一个物体的子目录,即另一个物体是它的父目录,那么它的Position就是相对于父目录而言的,即如果父目录的Position在(0,0,3),子目录的Position也在(0,0,3),那么它们是不会重合的。(如下图:Cube是父目录,Sphere是子目录)