SingleLineRendererData LineRendererToData(LineRenderer line) { if (line == null) { return(null); } SingleLineRendererData data = new SingleLineRendererData(); data.points = new List <Vector3Ser>(); for (int i = 0; i < line.positionCount; i++) { data.points.Add(line.GetPosition(i)); } data.startColor = line.startColor; data.startWidth = line.startWidth; data.endWidth = line.endWidth; data.material = (MaterialsEnum)allMaterials.GetCorrespondingIndex(line.sharedMaterial); data.cornerVertices = line.numCornerVertices; data.position = line.gameObject.transform.position; data.rotation = line.gameObject.transform.rotation; data.scale = line.gameObject.transform.localScale; return(data); }
void SaveLinesInScene(string fileName) { string pathToSave = Path.Combine(Application.persistentDataPath, string.Concat(fileName, ".dat")); BinaryFormatter formatter = new BinaryFormatter(); try { FileStream file = File.Open(pathToSave, FileMode.Create); GameObject[] linesInScene = GameObject.FindGameObjectsWithTag("Line"); if (linesInScene.Length > 0) { LineRendererData data = new LineRendererData(); data.lines = new List <SingleLineRendererData>(); for (int i = 0; i < linesInScene.Length; i++) { SingleLineRendererData lineData = null; if (linesInScene[i] != null) { lineData = LineRendererToData(linesInScene[i].GetComponent <LineRenderer>()); } if (lineData != null) { data.lines.Add(lineData); } } if (data.lines.Count > 0 && file != null) { formatter.Serialize(file, data); } } file.Close(); } catch (Exception e) { Debug.Log(e.ToString()); GameObject.Find("Text").GetComponent <UpdateWorldMappingStatus>().ChangeTextTo(e.ToString()); } }