前一段时间在用Unity做关于Kinect的虚拟场景中的手势模拟学习系统,在做到多个场景切换的时候遇到一个问题,就是每次跳转都会叠加KinectController,导致运行多次之后叠加了很多,整个工程文件会非常卡,研究了官方跳转场景的Demo和文档后发现它有自带的解决办法,但是没有从代码上解决问题,而是提供了一种思路,在这里我总结出两种解决办法,一种是用官方提供的demo里的方法,一种是用代码解决。
1、第一种方法:官方demo的脚本
也是我在工程中使用的方法,我做的工程使用了10个场景,当时为了解决这个问题也花了不少功夫。首先我们先说下关于KinectManager这个脚本,它的作用是控制kinect,封装了很多的函数,它在整个项目运行时都是一直存在的,不会也不能被销毁。所以,我们在unity做Kinect游戏时千万要注意这一点。
首先在第一个场景中创建一个Object,给它添加KinectManger 脚本,在其他场景中就不需要添加这个脚本了,在其他场景中只需要添加Locate Avatars And Gestures这个脚本就可以,这个脚本是包里自带的,只需要添加进去,此时进行场景跳转的时候KinectManger 对象会一直存在,而且是唯一