新建工程写hololens1程序遇到的问题解决

新建工程,导入官方的包,位置在官方gaze例子(HolographicAcademy210-Gaze)starting文件夹中呢,只有这一个例子中有包,其他后续的例子中就没有了。然后前面的那个origami的不用包。
在这里插入图片描述

写gaze例子类似的程序没有问题,但如果加入gesture例子类似的功能时,如manipulation功能,拖入CursorFeedback.cs会出现错误提示,说是HoloToolkit.Unity.InputModule.Cursor中没有也找不到GetTargetedObject()函数。
在这里插入图片描述

一开始以为是此模块中没有cursor文件,可是HoloToolkit下面怎么也找不到Unity文件夹,也么有InputModule文件夹,叫i我哪里去找cursor,然后官方gesture例子里也找遍了,没有,可是官方例子没有错误,且运行是正常的。难道是命名空间的问题?我的命名空间是 namespace Academy,它的命名空间是namespace HoloToolkit.Unity.InputModule。可后来发现前面我引用gaze例子中的它的文件也是不同命名空间的,运行没有问题。然后灵机一动,在VS2017中寻找函数的定义,还真奏效,立马打开了引用位置,一看原来HoloToolkit.Unity.InputModule.Cursor就是HoloToolkit中的cursor文件,我这里也是有的,而且乍一看代码都一样呀,然后仔细对比了一下官网gesture例子和我这里的cursor不同,哈哈,确实我这里的cursor文件最后比官网gesture例子中的少了GetTargetedObject()函数,嗨,说到底都是官网捣的鬼,两个课程怎么会差一个函数呢!
在这里插入图片描述

把下面这段代码加上,保存。一切问题解决。
在这里插入图片描述

最后提示一下,当导入的三维物体默认角度不是你想要的时,不要动父文件夹上的tranform(每个拖入hierarchy中的物体都会自动生成一个文件夹,真实的物体以defualt命名存在此文件夹下,父文件夹代表整个空间,子文件defualt代表三位物体本身),只要动子物体即default的tranform属性即可,否则用TapToPlaceParent脚本时(放到defualt身上)会出解决不了的位置或角度显示的麻烦。
在这里插入图片描述

在这里插入图片描述 另外物体要添加固体碰撞属性box collider(不要勾选is trigger,否则初始化后不会飘在空中,一开始肯定是坠到地面上的),否则无法用TapToPlaceParent放到任意平面上。