C#System.IO.File在Mac OSX上运行

时间:2016-01-14 22:03:12

标签: c# macos unity3d openni nite

背景:我试图将我的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#太新了,无法得到这里可能发生的事情。有没有猜到可能导致这种情况的原因?

0 个答案:

没有答案