上下文:我正在尝试在装有 OSX 10.10 的 Mac 上将我的 Kinect v2 与 Unity3D 集成。我已经安装了所有需要的驱动程序(afaik:libfreenect、openni2、nite、libusb 等),并且我正在使用这个 Unity 资产库。
问题:大部分似乎都可以工作,但我遇到了 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”的定义
资产/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# 仍然太陌生,无法了解可能是什么发生在这里。任何猜测可能是什么原因造成的?