Проблема с чтением из StreamingAssets Unity - PullRequest
2 голосов
/ 07 августа 2020

Если пользователь устанавливает программу в каталог C: \ Program Files (x86) , то при чтении из StreamingAssets появляется исключение. UnauthorizedAccessException: Access to the path "C:\Program Files (x86) ... is denied" Пользователь не имеет прав администратора. Запуск от имени администратора не помогает. Я не могу контролировать, где пользователь устанавливает программу. Вот так я читаю файл

string pathToDefaultScene = $"{Application.streamingAssetsPath}/DefaultScene.crscene";
using (var stream = new FileStream(pathToDefaultScene , FileMode.Open))
{
    stream.Read(sceneLengthBytes, 0, sizeof(int));
    stream.Read(imageLengthBytes, 0, sizeof(int));
    stream.Read(metadataLengthBytes, 0, sizeof(int));
    var sceneLength = BitConverter.ToInt32(sceneLengthBytes, 0);
    imageLength = BitConverter.ToInt32(imageLengthBytes, 0);
    var metadataLength = BitConverter.ToInt32(metadataLengthBytes, 0);
    sceneBytes = new byte[sceneLength];
    imageBytes = new byte[imageLength];
    metadataBytes = new byte[metadataLength];
    stream.Read(sceneBytes, 0, sceneLength);
    stream.Read(imageBytes, 0, imageLength);
    stream.Read(metadataBytes, 0, metadataLength);
}

1 Ответ

0 голосов
/ 07 августа 2020

К сожалению, вам придется изменить каталог установки. Лучшим решением будет создание установщика вашей сборки с помощью таких инструментов, как Inno Setup. если вы можете создать новую сборку.

Более подробную информацию вы можете прочитать ниже.

https://answers.unity.com/questions/901085/write-access.html

...