Как получить доступ к папке Steaming Assets? - PullRequest
0 голосов
/ 20 мая 2019

Так что в моем проекте у меня есть объект изображения, который загружает различные спрайты по всей игре.Чтобы реализовать это, у меня есть папка с кучей .pngs, к которым игра обращается.Чтобы это работало в автономной сборке, я поместил эти образы по следующему пути:

StreamingAssets/Question Images

Однако в Android я получаю сообщение об ошибке, поскольку, как говорится в руководстве:

«В Android файлы содержатся в сжатом файле .jar (который по сути тот же формат, что и стандартные файлы, сжатые zip-файлами). Это означает, что если вы не используете WWW-класс Unity для извлечения файла, вам необходимо использовать дополнительныепрограммное обеспечение для просмотра внутри архива .jar и получения файла.

Дело в том, что я понятия не имею, как реализовать это, какие-либо идеи?

1 Ответ

0 голосов
/ 20 мая 2019

С Application.streamingAssetsPath

невозможно получить доступ к папке StreamingAssets на платформах WebGL и Android ,Доступ к файлам недоступен в WebGL.Android использует сжатый файл .apk.Эти платформы возвращают URL.Используйте класс UnityWebRequest для доступа к Активам.

Пример использования UnityWebRequestTexture

private void Start() 
{
    StartCoroutine(GetTexture());
}

private IEnumerator GetTexture() 
{
    // in general I would always avoid to have spaces in file-paths
    var path = Path.Combine(Application.streamingAssetsPath, "QuestionImages", "exampleImage.png");

    using(var www = UnityWebRequestTexture.GetTexture(path))
    {
        yield return www.SendWebRequest();

        if(www.isNetworkError || www.isHttpError) 
        {
            Debug.LogErrorFormat(this, "Unable to load texture due to {0} - {1}", www.responseCode, www.error);
        }
        else 
        {
            Texture myTexture = ((DownloadHandlerTexture)www.downloadHandler).texture;
        }
    }
}

Примечание: набрано на смартфоне, поэтому никаких гарантий, но я надеюсь, что идея прояснится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...