Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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());
        }
    }