背景:我试图将我的Kinect v2与Unity3D在Mac OSX 10.10上集成。我安装了所有需要的驱动程序(afaik:libfreenect,openni2,nite,libusb等),我使用this Unity asset library。
问题:大部分内容似乎都有效,但我遇到了将数据写入文件的System.IO.File函数的问题。编译器错误:
Assets / KinectScripts / KinectWrapper.cs(391,38):错误CS0117:' System.IO.File'不包含' WriteAllText'
的定义Assets / KinectScripts / KinectWrapper.cs(458,38):错误CS0117:' System.IO.File'不包含' WriteAllText'
的定义Assets / KinectScripts / KinectWrapper.cs(536,38):错误CS0117:' System.IO.File'不包含' WriteAllBytes'
的定义
从这些代码部分调用它(我没写过):
L383-399:
if(!File.Exists("OpenNI.ini"))
{
Debug.Log("Copying OpenNI2 configuration...");
TextAsset textRes = Resources.Load("OpenNI.ini", typeof(TextAsset)) as TextAsset;
if(textRes != null)
{
string sResText = textRes.text.Replace("%OPENNI_REDIST_DIR%", sOpenNIPath);
File.WriteAllText("OpenNI.ini", sResText);
bOneCopied = File.Exists("OpenNI.ini");
bAllCopied = bAllCopied && bOneCopied;
if(bOneCopied)
Debug.Log("Copied OpenNI2 configuration.");
}
}
L450-466:
if(!File.Exists("NiTE.ini"))
{
Debug.Log("Copying NiTE2 configuration...");
TextAsset textRes = Resources.Load("NiTE.ini", typeof(TextAsset)) as TextAsset;
if(textRes != null)
{
string sResText = textRes.text.Replace("%NITE_REDIST_DIR%", sNiTEPath);
File.WriteAllText("NiTE.ini", sResText);
bOneCopied = File.Exists("NiTE.ini");
bAllCopied = bAllCopied && bOneCopied;
if(bOneCopied)
Debug.Log("Copied NITE2 configuration.");
}
}
L528-545
#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX
if(!File.Exists("libUnityInterface2.dylib"))
{
Debug.Log("Copying UnityInterface2 library...");
TextAsset textRes = Resources.Load("libUnityInterface2.dylib", typeof(TextAsset)) as TextAsset;
if(textRes != null)
{
File.WriteAllBytes("libUnityInterface2.dylib", textRes.bytes);
bOneCopied = File.Exists("libUnityInterface2.dylib");
bAllCopied = bAllCopied && bOneCopied;
if(bOneCopied)
Debug.Log("Copied UnityInterface library.");
}
}
#endif
我已经花了足够的时间知道它看起来不像WriteAllText / Bytes应该抛出这种错误,因为文档肯定说它们存在,但我仍然C#太新了,无法得到这里可能发生的事情。有没有猜到可能导致这种情况的原因?