void loadPedestrianFile(string filename) { var sr = new StreamReader(Application.dataPath + "/" + filename); var fileContents = sr.ReadToEnd(); sr.Close(); PedestrianLoader pl = GameObject.Find("PedestrianLoader").GetComponent <PedestrianLoader>(); string[] lines = fileContents.Split("\n"[0]); foreach (string line in lines) { string[] v = line.Split(' '); if (v.Length >= 3) { decimal time; int id; float x; float y; decimal.TryParse(v[0], out time); int.TryParse(v[1], out id); float.TryParse(v[2], out x); float.TryParse(v[3], out y); pl.addPedestrianPosition(new PedestrianPosition(id, time, x, y)); } } pl.createPedestrians(); }
void loadPedestrianFile(string filename) { if (!System.IO.File.Exists(filename)) { Debug.Log("Error: File " + filename + " not found."); return; } XmlDocument xmlDocTraj = new XmlDocument(); xmlDocTraj.LoadXml(System.IO.File.ReadAllText(filename)); PedestrianLoader pl = GameObject.Find("PedestrianLoader").GetComponent <PedestrianLoader>(); XmlNode trajectories = xmlDocTraj.SelectSingleNode("//trajectories"); int fps = 8, FrameID; //8 is used as a default framerate. Actual value is read from xmlDocTraj foreach (XmlElement header in trajectories.SelectNodes("header")) { XDocument doc = XDocument.Load(filename); var fpsInput = doc.Descendants("frameRate"); foreach (var fpsVal in fpsInput) { if (float.Parse(fpsVal.Value) != 0) { fps = (int)float.Parse(fpsVal.Value); } } } foreach (XmlElement frame in trajectories.SelectNodes("frame")) { int.TryParse(frame.GetAttribute("ID"), out FrameID); if (FrameID % fps == 0) { foreach (XmlElement agent in frame) { decimal time; int id; float x; float y; float z; decimal.TryParse(frame.GetAttribute("ID"), out time); int.TryParse(agent.GetAttribute("ID"), out id); float.TryParse(agent.GetAttribute("x"), out x); float.TryParse(agent.GetAttribute("y"), out y); float.TryParse(agent.GetAttribute("z"), out z); pl.addPedestrianPosition(new PedestrianPosition(id, time / fps, x, y, z)); } } } pl.createPedestrians(); }