Я безуспешно пытаюсь прочитать файл в Unity из внешнего источника. Чтобы быть более понятным, я могу легко читать и писать в файл с помощью StreamWriter и StreamReader, пока я разрабатываю игру.
Проблема в том, что после сборки игра больше не хочет читать файл. Проблема в том, что в сборке у меня больше нет ни папки Resource, ни файла position.txt.
Итак, я попытался поместить файл в c: вызывая функцию таким образом ReadFromFile(@"C:\test\position.txt");
Он все еще работает в стадии разработки, но не после сборки.
string path = Application.dataPath+"/Resources/position.txt";
ReadFromFile(path);
public bool ReadFromFile(string fileName)
{
try
{
string line;
StreamReader theReader = new StreamReader(fileName, Encoding.Default);
using (theReader)
{
do
{
line = theReader.ReadLine();
if (line != null)
{
string[] entries = line.Split(',');
switch (entries[0])
{
case "1":
Console.WriteLine("Case 1");
cube1 = GameObject.Find("Cube1");
cube1.GetComponent<Renderer>().material.color = Color.red;
StartCoroutine(RotateCoroutine(new Vector3(0, 90, 0), 2.0f, cube1));
break;
case "2":
Console.WriteLine("Case 2");
cube2 = GameObject.Find("Cube2");
cube2.GetComponent<Renderer>().material.color = Color.red;
StartCoroutine(RotateCoroutine(new Vector3(0, 90, 0), 2.0f, cube2));
break;
case "3":
Console.WriteLine("Case 3");
cube3 = GameObject.Find("Cube3");
cube3.GetComponent<Renderer>().material.color = Color.red;
StartCoroutine(RotateCoroutine(new Vector3(0, 90, 0), 2.0f, cube3));
break;
default:
Console.WriteLine("Default case");
break;
}
}
}
while (line != null);
theReader.Close();
return true;
}
}
catch (Exception e)
{
Console.WriteLine("{0}\n", e.Message);
return false;
}
}
Can someone give me some hints to make it work?





Вы можете использовать TextAsset
TextAsset txt = (TextAsset)Resources.Load("position", typeof(TextAsset));
а затем разделите текст на строки
List<string> lines = new List<string>(txt.text.Split('\n'));
вы также можете заменить '\ n' на System.Environment.NewLine, если хотите быть кросс-платформенной.
Ваш ответ был правильным, но я забыл упомянуть, что я создавал приложение как WebGL. Поэтому я не могу получить доступ к локальным файлам, мне нужно использовать WWW. Глупая ошибка новичка
хорошо, если вы используете webgl, чем нет, вы не можете получить доступ к локальным файлам
Я тоже пытался использовать TextAsset, и они работают, пока я не нахожусь в режиме разработки. После компиляции я не вижу файл, и у меня нет правильного поведения