C# System.IO.File работает на Mac OSX

КОНТЕКСТ: Я пытаюсь интегрировать мой Kinect v2 с Unity3D на Mac с OSX 10.10. У меня установлены все необходимые драйверы (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"

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 ответов

Другие вопросы по тегам