Поток процесса исчезает из цикла в единстве - PullRequest
1 голос
/ 13 марта 2019

В моем коде единства есть цикл, который читает текстовый файл .csv и добавляет содержимое в класс, который затем добавляется в объект List.

Проблема, с которой я столкнулся, заключается в том, что код в приведенном ниже методе никогда не завершается, то есть он никогда не попадает в оператор debug.log в нижней части цикла, если я пытаюсь сделать вызов из цикла ( здесь не следует называть это потоком) поток просто останавливается, и я не получаю сообщения об ошибке в консоли.

void ReadDataFile()
{
    Debug.Log(getPath() + DataFileName);
    string fileData = System.IO.File.ReadAllText(getPath() + DataFileName);
    string[] lines = fileData.Split("\n"[0]);
    Debug.Log("linecount from csv is : " + lines.Length);

    for(int n = 1;n < lines.Length; n++)
    {
        Debug.Log("LINE=" + lines[n]);
        string[] linedata = (lines[n].Trim()).Split(',');
        if (linedata[0] == null) break;
        geoData data = new geoData();
        data.Name = linedata[(int)enumField.NAME];
        data.Lat = linedata[(int)enumField.LAT];
        data.Long = linedata[(int)enumField.LONG];
        data.LocType = linedata[(int)enumField.TYPEOFLOCATION];
        data.Charts = linedata[(int)enumField.CHARTS];
        data.Vhf_Tel = linedata[(int)enumField.VHF_TEL];
        data.GroundtoAnchor = linedata[(int)enumField.GROUNDTOANCHOR];
        data.Possibilities = linedata[(int)enumField.POSSIBILITIES];
        data.Environment = linedata[(int)enumField.ENVIRONMENT];
        data.Transportation = linedata[(int)enumField.TRANSPORTATION];


        //add to list
        PortData.Add(data);
        Debug.Log(data.Name + " " + data.Lat + " " + data.LocType);
        /*
        float lat = (float)GeoAngle.FromDegrees(data.Lat);
        float lng = (float)GeoAngle.FromDegrees(data.Long);
        Debug.Log("Adding marker at:" + lat + " " + lng);
        Vector2 markerGeo = new Vector2(lat, lng);

        Debug.Log("Plot vector2 is: " + markerGeo);

        OnlineMapsMarker3D current = control.AddMarker3D(markerGeo, MapMarker);
        */

    }

    Debug.Log("portdata saved to class is : " + PortData.Count);
}

1 Ответ

1 голос
/ 13 марта 2019

Спасибо всем, это был исключение индекса вне диапазона, странно, что он не был обнаружен консолью Unity.

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