zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Microsoft Kinect SDK Wrapper For Unity Crash Bug Fix

BUGSDK for Unity Microsoft Crash fix Wrapper
2023-09-14 08:57:15 时间
There’s a great free Kinect SDK wrapper available for Unity. It’s free open source but there are still a few problems getting it to run with the 1.0 SDK (as opposed to the beta).

The first problem is that it is pointing to the wrong dll file. When you get this exception:

DllNotFoundException: C:\Program Files (x86)\Microsoft Research KinectSDK\MSRKINECTNUI.DLL
You should open the file KinectInterop.cs and changes all dll paths to:

C:\Windows\System32\Kinect10.dll
This will fix all compiler errors and it should run without problems.

However, it will only run once. When you run it the second time Unity will freeze and you will have to kill the process. Not very convenient.

This is caused by a bug in the Microsoft SDK. According to this page the problem is:

If C++ code is executing NuiInitializa/NuiShutdown multiple times through

the applications lifetime, SetDeviceStatusCallback should be called once,

before invoking those calls.

So apparently a single call to SetDeviceStatusCallback() should fix the problem. To be able to call this method we need to add some code to theKinectInterop.cs file. First of all we need to add an empty struct:

public struct NuiStatusProc

Then we need to link the native method. In the NativeMethods class add:


[DllImportAttribute(@"C:\Windows\System32\Kinect10.dll", EntryPoint = "NuiSetDeviceStatusCallback")]

 public static extern void NuiSetDeviceStatusCallback(NuiStatusProc callback);

Now open the file KinectSensor.cs and add this line to the void Awake()method (just before the line “catch (Exception e)”):


NativeMethods.NuiSetDeviceStatusCallback(new NuiStatusProc());

Now everything should run fine. If it doesn’t let me know :O

reference: http://www.rozengain.com/blog/2012/05/10/microsoft-kinect-sdk-wrapper-for-unity-crash-bug-fix/


iOS Xcode11打包失败IPA processing failed 更新到Xcode11后修改了点bug,一直没有打包,今天打包发现失败了,提示IPA processing failed,查看日志:IDEDistribution.standard.log