2015-03-24 3 views
1

Если я переключу платформу на веб-плеер, я получаю сообщение об ошибке system.io.file' does not contain a definition for readAllTex, этот метод не работает, но он работает, если я подталкиваю целевую платформу рсsystem.io.file 'не содержит определения для readalltext на webplayer в Unity

string readPath(){ 
    string filepath = "wsPath.txt"; 
    string wspath=Environment.NewLine; 

    if (File.Exists(filepath)) 
     wspath = File.ReadAllText(filepath); 

    return wspath; 
} 
+0

Можете ли вы объяснить, что вы имеете в виду под «не работает»? - Этот метод не называется? Этот метод называется, но ничего не делает? Есть что-то в этом методе, который не работает? Вы действительно отлаживали игру? –

+0

Имя ошибки в заголовке – AFS

ответ

2

Это связано с песочницы безопасности WebPlayer, который имеет определенные ограничения, наложенные для предотвращения вредоносного кода выполняется приложением единства через браузер.

документов Unity включает страницу, поясняя это:

http://docs.unity3d.com/Manual/SecuritySandbox.html

Что включает в себя следующее краткое описание ограничений:

  • Ограничение на доступ к данным в домене, отличном от хостинга ваш .unity3d файл.
  • Некоторые ограничения на использование сокетов.
  • Запрет вызова любого метода, который мы считаем пределом. (вещи
    как File.Delete и т. д.).
  • Запрет использования System.Reflection. * Для вызова private/internal методов в классах, которые вы сами не пишете.

Короче говоря, вы не можете напрямую обращаться к файловой системе, используя пространство имен System.IO. Unity намеренно был отключен.

Лучшей практикой является использование PlayerPrefs или загрузка/сохранение данных через удаленную веб-службу. Там в дискуссии на эту тему здесь:

http://forum.unity3d.com/threads/read-write-text-files-from-unity-webplayer.19046/