Как получить доступ к ресурсам Unity на Android или iPhone? - PullRequest
2 голосов
/ 23 ноября 2011

Мне нужен собственный доступ к файлу (из кода C ++ или Java) на Android и iPhone в проекте плагина Unity. Предоставляет ли Unity какой-либо метод доступа к файлам в активах проекта?

Ответы [ 2 ]

6 голосов
/ 01 июля 2013
  1. Мой обходной путь состоял в том, чтобы скопировать файлы из Application.streamingAssetsPath (который находится внутри jar и не может быть доступен большинству собственных библиотек) в Application.persistentDataPath (который полностью подходит), а затем передатьэтот путь к собственному коду.
  2. Исходные файлы в проекте должны находиться в папке Assets \ StreamingAssets

Небольшой пример кода на c # для асинхронного копирования файлов: добавьте этот метод в скрипткоторый наследует MonoBehaviour

IEnumerator CopyFileAsyncOnAndroid()
{
    string fromPath = Application.streamingAssetsPath +"/";
    //In Android = "jar:file://" + Application.dataPath + "!/assets/" 
    string toPath =   Application.persistentDataPath +"/";

    string[] filesNamesToCopy = new string[] { "a.txt" ,"b.txt"};
    foreach (string fileName in filesNamesToCopy)
    {
        Debug.Log("copying from "+ fromPath + fileName +" to "+ toPath);
        WWW www1 = new WWW( fromPath +fileName);
        yield return www1;
        Debug.Log("yield done");
        File.WriteAllBytes(toPath+ fileName, www1.bytes);
        Debug.Log("file copy done");
    }
    //ADD YOUR CALL TO NATIVE CODE HERE
    //Note: 4 small files can take a second to finish copy. so do it once and
    //set a persistent flag to know you don`t need to call it again
}
0 голосов
/ 28 ноября 2011

Доступ к файлам во время выполнения ограничен каталогом Активы / Ресурсы.Ко всему помещенному в него можно получить доступ методом Resources.Load ( doc ), но нет возможности получить что-то из-за пределов папки.

В папке Assets / Resources вы можете настроитьпроизвольная структура папок.Я использовал его в проекте iPhone для создания уровня из предопределенных текстовых файлов, и он работал как шарм.

...