示例#1
0
    public void GenerateMesh(Pair2D pair)
    {
        List <Mesh2DTriangle> trianglesList = new List <Mesh2DTriangle>();

        trianglesList.Add(Max2DMesh.CreateLineNew(pair, lineWidth, transform.position.z + lineOffset));
        mesh = Max2DMesh.ExportMesh2(trianglesList);
    }
示例#2
0
        static public Mesh GenerateMesh(List <Vector2D> complexSlicerPointsList, Transform transform, float lineWidth, float minVertexDistance, float zPosition, float squareSize, float lineEndWidth, float vertexSpace, Slicer2DLineEndingType endingType, int edges)
        {
            Mesh2DMesh trianglesList = new Mesh2DMesh();

            float size = squareSize;

            Vector2D      vA, vB;
            List <Pair2D> list = Pair2D.GetList(complexSlicerPointsList, false);

            foreach (Pair2D pair in list)
            {
                vA = new Vector2D(pair.A);
                vB = new Vector2D(pair.B);

                vA.Push(Vector2D.Atan2(pair.A, pair.B), -minVertexDistance * vertexSpace);
                vB.Push(Vector2D.Atan2(pair.A, pair.B), minVertexDistance * vertexSpace);

                trianglesList.Add(Max2DMesh.CreateLine(new Pair2D(vA, vB), transform.localScale, lineWidth, zPosition));
            }

            Pair2D linearPair = Pair2D.Zero();

            linearPair.A = new Vector2D(complexSlicerPointsList.First());
            linearPair.B = new Vector2D(complexSlicerPointsList.Last());

            GenerateSquare(trianglesList, linearPair.A, size, transform, lineEndWidth, zPosition, endingType, edges);

            GenerateSquare(trianglesList, linearPair.B, size, transform, lineEndWidth, zPosition, endingType, edges);

            return(Max2DMesh.Export(trianglesList));
        }
示例#3
0
    public void Draw()
    {
        //material.color = color;
        material.SetColor("_Emission", color);

        Max2DMesh.Draw(mesh, material);
    }
示例#4
0
    public void DrawTrajectory()
    {
        Polygon2D trajectory = new Polygon2D();
        //trajectory.AddPoint(0, 0);

        Vector2 pos     = spawner.transform.position;
        Vector2 gravity = Physics2D.gravity;
        Vector2 force   = spawner.transform.right * applyForce;

        float timer = 0;

        while (timer < 3)
        {
            float delta = 0.1f;

            trajectory.AddPoint(pos);

            pos   += force * delta;
            force += gravity * delta;

            timer += delta;
        }

        Mesh mesh = Max2DMesh.CreatePolygon(transform, trajectory, -3f, 1f, false);

        Max2DMesh.Draw(mesh, trajectoryMaterial);
    }
    static public Mesh GenerateComplexMesh(List <Vector2D> complexSlicerPointsList, Transform transform, float lineWidth, float minVertexDistance, float zPosition, float squareSize, float lineEndWidth, float vertexSpace)
    {
        List <Mesh2DSubmesh> trianglesList = new List <Mesh2DSubmesh>();

        Pair2D pair = Pair2D.Zero();

        for (int i = 0; i < complexSlicerPointsList.Count; i++)
        {
            pair.A = complexSlicerPointsList[i];
            pair.B = complexSlicerPointsList[(i + 1) % complexSlicerPointsList.Count];

            vA.x = pair.A.x;
            vA.y = pair.A.y;

            vB.x = pair.B.x;
            vB.y = pair.B.y;

            vA.Push(Vector2D.Atan2(pair.A, pair.B), -minVertexDistance * vertexSpace);
            vB.Push(Vector2D.Atan2(pair.A, pair.B), minVertexDistance * vertexSpace);

            trianglesList.Add(Max2DMesh.CreateLine(new Pair2D(vA, vB), transform, lineWidth, zPosition));
        }

        return(Max2DMesh.Export(trianglesList));
    }
示例#6
0
        static public Mesh GenerateTrackerMesh(Vector2D pos, Dictionary <Slicer2D, SlicerTrackerObject> trackerList, Transform transform, float lineWidth, float zPosition, float squareSize, Slicer2DLineEndingType endingType, int edges)
        {
            Mesh2DMesh trianglesList = new Mesh2DMesh();

            float size = squareSize;

            GenerateSquare(trianglesList, pos, size, transform, lineWidth, zPosition, endingType, edges);

            trianglesList.Add(Max2DMesh.CreateLine(new Pair2D(pos, pos), transform.localScale, lineWidth, zPosition));

            foreach (KeyValuePair <Slicer2D, SlicerTrackerObject> trackerPair in trackerList)
            {
                SlicerTrackerObject tracker = trackerPair.Value;
                if (trackerPair.Key != null && tracker.tracking)
                {
                    List <Vector2D> pointListWorld = Vector2DList.PointsToWorldSpace(trackerPair.Key.transform, tracker.pointsList);

                    pointListWorld.Add(pos);

                    List <Pair2D> pairList = Pair2D.GetList(pointListWorld, false);

                    foreach (Pair2D pair in pairList)
                    {
                        trianglesList.Add(Max2DMesh.CreateLine(pair, transform.localScale, lineWidth, zPosition));
                    }
                }
            }

            return(Max2DMesh.Export(trianglesList));
        }
示例#7
0
    static public Mesh GeneratePointMesh(Pair2D linearPair, Transform transform, float lineWidth, float zPosition)
    {
        Mesh2DMesh trianglesList = new Mesh2DMesh();

        trianglesList.Add(Max2DMesh.CreateLine(linearPair, transform.localScale, lineWidth, zPosition));

        return(Max2DMesh.Export(trianglesList));
    }
    public void GenerateMesh()
    {
        lineWidthSet = lineWidth;

        if (GetPolygon() != null)
        {
            mesh = Max2DMesh.GeneratePolygon2DMeshNew(transform, GetPolygon(), lineOffset, lineWidth, edgeCollider2D == false);
        }
    }
示例#9
0
    void Update()
    {
        trackerObject.Update(transform.position);

        mesh = Slicer2DVisualsMesh.Linear.GenerateTrackerMesh(trackerObject.trackerList, transform, lineWidth, transform.position.z + 0.001f);

        //Max2D.SetColor (Color.black);
        Max2DMesh.Draw(mesh, GetStaticMaterial());
    }
示例#10
0
    void Update()
    {
        trackerObject.Update(transform.position);

        mesh = Max2DMesh.GenerateComplexTrackerMesh(trackerObject.trackerList, transform, lineWidth, transform.position.z + 0.001f);

        Max2D.SetColor(Color.black);
        Max2DMesh.Draw(mesh, Max2D.lineMaterial);
    }
示例#11
0
 static public Mesh GetMesh()
 {
     if (mesh == null)
     {
         List <Mesh2DTriangle> triangles = new List <Mesh2DTriangle>();
         triangles.Add(Max2DMesh.CreateBox(0.25f));
         mesh = Max2DMesh.ExportMesh2(triangles);
     }
     return(mesh);
 }
示例#12
0
 static public Mesh GetMesh()
 {
     if (mesh == null)
     {
         Mesh2DMesh triangles = new Mesh2DMesh();
         triangles.Add(Max2DMesh.Legacy.CreateBox(0.125f));
         mesh = Max2DMesh.Export(triangles);
     }
     return(mesh);
 }
    public void GenerateMesh()
    {
        lineWidthSet = lineWidth;

        if (mesh != null)
        {
            DestroyImmediate(mesh);
        }

        mesh = Max2DMesh.CreatePolygon(transform, GetPolygon(), lineOffset, lineWidth, edgeCollider == false);
    }
    public void Draw()
    {
        //material.color = color;
        material.SetColor("_Emission", color);

        if (mesh == null)
        {
            return;
        }

        Max2DMesh.Draw(mesh, transform, material);
    }
示例#15
0
        static public Mesh GenerateMesh(Pair2D linearPair, Transform transform, float lineWidth, float zPosition, float size, float lineEndWidth, Slicer2DLineEndingType endingType, int edges)
        {
            Mesh2DMesh trianglesList = new Mesh2DMesh();

            trianglesList.Add(Max2DMesh.CreateLine(linearPair, transform.localScale, lineWidth, zPosition));

            GenerateSquare(trianglesList, linearPair.A, size, transform, lineEndWidth, zPosition, endingType, edges);

            GenerateSquare(trianglesList, linearPair.B, size, transform, lineEndWidth, zPosition, endingType, edges);

            return(Max2DMesh.Export(trianglesList));
        }
示例#16
0
    static public Mesh CreatePolygon(Transform transform, Polygon2D polygon, float lineOffset, float lineWidth, bool connectedLine)
    {
        Mesh2DMesh trianglesList = new Mesh2DMesh();

        int count   = polygon.pointsList.Count;
        int lastID  = count - 1;
        int startID = 0;

        if (connectedLine == false)
        {
            lastID  = 0;
            startID = 1;
        }

        Pair2D p = pair2D;

        p.A = polygon.pointsList[lastID];

        for (int i = startID; i < count; i++)
        {
            p.B = polygon.pointsList[i];

            trianglesList.Add(Max2DMesh.CreateLine(p, transform.localScale, lineWidth, lineOffset));

            p.A = p.B;
        }

        foreach (Polygon2D hole in polygon.holesList)
        {
            count   = hole.pointsList.Count;
            lastID  = count - 1;
            startID = 0;

            if (connectedLine == false)
            {
                lastID  = 0;
                startID = 1;
            }

            p.A = hole.pointsList[lastID];

            for (int i = startID; i < count; i++)
            {
                p.B = hole.pointsList[i];

                trianglesList.Add(Max2DMesh.CreateLine(p, transform.localScale, lineWidth, lineOffset));

                p.A = p.B;
            }
        }

        return(Max2DMesh.Export(trianglesList));
    }
示例#17
0
        static public Mesh GenerateCutMesh(Pair2D linearPair, float cutSize, Transform transform, float lineWidth, float zPosition)
        {
            Mesh2DMesh trianglesList = new Mesh2DMesh();

            LinearCut linearCutLine = LinearCut.Create(linearPair, cutSize);

            foreach (Pair2D pair in Pair2D.GetList(linearCutLine.GetPointsList(), true))
            {
                trianglesList.Add(Max2DMesh.CreateLine(pair, transform.localScale, lineWidth, zPosition));
            }

            return(Max2DMesh.Export(trianglesList));
        }
示例#18
0
        static public Mesh GenerateCutMesh(List <Vector2D> complexSlicerPointsList, float cutSize, Transform transform, float lineWidth, float zPosition)
        {
            Mesh2DMesh trianglesList = new Mesh2DMesh();

            ComplexCut complexCutLine = ComplexCut.Create(complexSlicerPointsList, cutSize);

            foreach (Pair2D pair in Pair2D.GetList(complexCutLine.GetPointsList(), true))
            {
                trianglesList.Add(Max2DMesh.CreateLine(pair, transform.localScale, lineWidth, zPosition));
            }

            return(Max2DMesh.Export(trianglesList));
        }
 public void Draw()
 {
     if (customColor)
     {
         material.SetColor("_Emission", color);
         Max2DMesh.Draw(mesh, transform, material, orderInLayer);
     }
     else
     {
         Max2D.Check();
         Max2D.lineMaterial.SetColor("_Emission", Color.black);
         Max2DMesh.Draw(mesh, transform, Max2D.lineMaterial, orderInLayer);
     }
 }
示例#20
0
    static public Mesh GenerateCreateMesh(Vector2D pos, Polygon2D.PolygonType polygonType, float polygonSize, Slicer2DCreateControllerObject.CreateType createType, List <Vector2D> complexSlicerPointsList, Pair2D linearPair, float minVertexDistance, Transform transform, float lineWidth, float zPosition, float squareSize, Slicer2DLineEndingType endingType, int edges)
    {
        Mesh2DMesh trianglesList = new Mesh2DMesh();

        float size = squareSize;

        if (createType == Slicer2DCreateControllerObject.CreateType.Slice)
        {
            if (complexSlicerPointsList.Count > 0)
            {
                linearPair.A = new Vector2D(complexSlicerPointsList.First());
                linearPair.B = new Vector2D(complexSlicerPointsList.Last());

                GenerateSquare(trianglesList, linearPair.A, size, transform, lineWidth, zPosition, endingType, edges);

                GenerateSquare(trianglesList, linearPair.B, size, transform, lineWidth, zPosition, endingType, edges);

                Vector2D vA, vB;
                foreach (Pair2D pair in Pair2D.GetList(complexSlicerPointsList, true))
                {
                    vA = new Vector2D(pair.A);
                    vB = new Vector2D(pair.B);

                    vA.Push(Vector2D.Atan2(pair.A, pair.B), -minVertexDistance / 5);
                    vB.Push(Vector2D.Atan2(pair.A, pair.B), minVertexDistance / 5);

                    trianglesList.Add(Max2DMesh.CreateLine(new Pair2D(vA, vB), transform.localScale, lineWidth, zPosition));
                }
            }
        }
        else
        {
            Polygon2D poly = Polygon2D.Create(polygonType, polygonSize).ToOffset(pos);

            Vector2D vA, vB;
            foreach (Pair2D pair in Pair2D.GetList(poly.pointsList, true))
            {
                vA = new Vector2D(pair.A);
                vB = new Vector2D(pair.B);

                vA.Push(Vector2D.Atan2(pair.A, pair.B), -minVertexDistance / 5);
                vB.Push(Vector2D.Atan2(pair.A, pair.B), minVertexDistance / 5);

                trianglesList.Add(Max2DMesh.CreateLine(new Pair2D(vA, vB), transform.localScale, lineWidth, zPosition));
            }
        }

        return(Max2DMesh.Export(trianglesList));
    }
    public void DrawLine(Pair2D pair)
    {
        Mesh meshBorder = Max2DMesh.GenerateLinearMesh(pair, transform, lineWidth * 2f * visualScale, zPosition + 0.001f, 0, lineWidth * 2f * visualScale);
        Mesh mesh       = Max2DMesh.GenerateLinearMesh(pair, transform, lineWidth * visualScale, zPosition, 0, lineWidth * 2f * visualScale);

        lineMaterial.SetColor("_Emission", Color.black);
        Max2DMesh.Draw(Max2DMesh.GenerateLinearMesh(new Pair2D(pair.A, pair.A), transform, lineWidth * 10f * visualScale, zPosition + 0.001f, 0, lineWidth * 10f * visualScale), lineMaterialBorder);
        Max2DMesh.Draw(Max2DMesh.GenerateLinearMesh(new Pair2D(pair.B, pair.B), transform, lineWidth * 10f * visualScale, zPosition + 0.001f, 0, lineWidth * 10f * visualScale), lineMaterialBorder);

        Max2DMesh.Draw(meshBorder, lineMaterialBorder);

        lineMaterial.SetColor("_Emission", slicerColor);
        Max2DMesh.Draw(Max2DMesh.GenerateLinearMesh(new Pair2D(pair.A, pair.A), transform, lineWidth * 5f * visualScale, zPosition + 0.001f, 0, lineWidth * 5f * visualScale), lineMaterial);
        Max2DMesh.Draw(Max2DMesh.GenerateLinearMesh(new Pair2D(pair.B, pair.B), transform, lineWidth * 5f * visualScale, zPosition + 0.001f, 0, lineWidth * 5f * visualScale), lineMaterial);

        Max2DMesh.Draw(mesh, lineMaterial);
    }
示例#22
0
    public void DrawLine(Pair2D pair)
    {
        Mesh meshBorder = Slicer2DVisualsMesh.Linear.GenerateMesh(pair, transform, lineWidth * 2f * visualScale, zPosition + 0.001f, 0, lineWidth * 2f * visualScale, visuals.lineEndingType, visuals.lineEndingEdgeCount);
        Mesh mesh       = Slicer2DVisualsMesh.Linear.GenerateMesh(pair, transform, lineWidth * visualScale, zPosition, 0, lineWidth * 2f * visualScale, visuals.lineEndingType, visuals.lineEndingEdgeCount);

        lineMaterial.SetColor(Color.black);
        Max2DMesh.Draw(Slicer2DVisualsMesh.Linear.GenerateMesh(new Pair2D(pair.A, pair.A), transform, lineWidth * 10f * visualScale, zPosition + 0.001f, 0, lineWidth * 10f * visualScale, visuals.lineEndingType, visuals.lineEndingEdgeCount), lineMaterialBorder.material);
        Max2DMesh.Draw(Slicer2DVisualsMesh.Linear.GenerateMesh(new Pair2D(pair.B, pair.B), transform, lineWidth * 10f * visualScale, zPosition + 0.001f, 0, lineWidth * 10f * visualScale, visuals.lineEndingType, visuals.lineEndingEdgeCount), lineMaterialBorder.material);

        Max2DMesh.Draw(meshBorder, lineMaterialBorder.material);

        lineMaterial.SetColor(slicerColor);
        Max2DMesh.Draw(Slicer2DVisualsMesh.Linear.GenerateMesh(new Pair2D(pair.A, pair.A), transform, lineWidth * 5f * visualScale, zPosition + 0.001f, 0, lineWidth * 5f * visualScale, visuals.lineEndingType, visuals.lineEndingEdgeCount), lineMaterial.material);
        Max2DMesh.Draw(Slicer2DVisualsMesh.Linear.GenerateMesh(new Pair2D(pair.B, pair.B), transform, lineWidth * 5f * visualScale, zPosition + 0.001f, 0, lineWidth * 5f * visualScale, visuals.lineEndingType, visuals.lineEndingEdgeCount), lineMaterial.material);

        Max2DMesh.Draw(mesh, lineMaterial.material);
    }
示例#23
0
    public void Draw(Pair2D pair)
    {
        List <Mesh2DTriangle> trianglesList = new List <Mesh2DTriangle>();

        trianglesList.Add(Max2DMesh.CreateLineNew(pair, lineWidth, transform.position.z + lineOffset));
        Mesh mesh = Max2DMesh.ExportMesh(trianglesList);

        if (customColor)
        {
            material.SetColor("_Emission", color);

            Max2DMesh.Draw(mesh, material);
        }
        else
        {
            Max2DMesh.Draw(mesh, Max2D.lineMaterial);
        }
    }
    public void Draw(Pair2D pair)
    {
        Mesh2DMesh trianglesList = new Mesh2DMesh();

        trianglesList.Add(Max2DMesh.CreateLine(pair, new Vector3(1, 1, 1), lineWidth, transform.position.z + lineOffset));
        Mesh mesh = Max2DMesh.Export(trianglesList);

        if (customColor)
        {
            material.SetColor(color);

            Max2DMesh.Draw(mesh, GetMaterial().material);
        }
        else
        {
            Max2DMesh.Draw(mesh, GetStaticMaterial().material);
        }
    }
    static public Mesh GenerateLinearMesh(Pair2D linearPair, Transform transform, float lineWidth, float zPosition, float squareSize, float lineEndWidth)
    {
        List <Mesh2DSubmesh> trianglesList = new List <Mesh2DSubmesh>();

        float size = squareSize;

        trianglesList.Add(Max2DMesh.CreateLine(linearPair, transform, lineWidth, zPosition));
        trianglesList.Add(Max2DMesh.CreateLine(new Pair2D(new Vector2D(linearPair.A.x - size, linearPair.A.y - size), new Vector2D(linearPair.A.x + size, linearPair.A.y - size)), transform, lineEndWidth, zPosition));
        trianglesList.Add(Max2DMesh.CreateLine(new Pair2D(new Vector2D(linearPair.A.x - size, linearPair.A.y - size), new Vector2D(linearPair.A.x - size, linearPair.A.y + size)), transform, lineEndWidth, zPosition));
        trianglesList.Add(Max2DMesh.CreateLine(new Pair2D(new Vector2D(linearPair.A.x + size, linearPair.A.y + size), new Vector2D(linearPair.A.x + size, linearPair.A.y - size)), transform, lineEndWidth, zPosition));
        trianglesList.Add(Max2DMesh.CreateLine(new Pair2D(new Vector2D(linearPair.A.x + size, linearPair.A.y + size), new Vector2D(linearPair.A.x - size, linearPair.A.y + size)), transform, lineEndWidth, zPosition));

        trianglesList.Add(Max2DMesh.CreateLine(new Pair2D(new Vector2D(linearPair.B.x - size, linearPair.B.y - size), new Vector2D(linearPair.B.x + size, linearPair.B.y - size)), transform, lineEndWidth, zPosition));
        trianglesList.Add(Max2DMesh.CreateLine(new Pair2D(new Vector2D(linearPair.B.x - size, linearPair.B.y - size), new Vector2D(linearPair.B.x - size, linearPair.B.y + size)), transform, lineEndWidth, zPosition));
        trianglesList.Add(Max2DMesh.CreateLine(new Pair2D(new Vector2D(linearPair.B.x + size, linearPair.B.y + size), new Vector2D(linearPair.B.x + size, linearPair.B.y - size)), transform, lineEndWidth, zPosition));
        trianglesList.Add(Max2DMesh.CreateLine(new Pair2D(new Vector2D(linearPair.B.x + size, linearPair.B.y + size), new Vector2D(linearPair.B.x - size, linearPair.B.y + size)), transform, lineEndWidth, zPosition));

        return(Max2DMesh.Export(trianglesList));
    }
示例#26
0
 public void Draw()
 {
     if (customColor)
     {
         if (material != null)
         {
             material.SetColor("_Emission", color);
             Max2DMesh.Draw(mesh, transform, material);
         }
     }
     else
     {
         Max2D.Check();
         if (staticMaterial != null)
         {
             staticMaterial.SetColor("_Emission", Color.black);
             Max2DMesh.Draw(mesh, transform, staticMaterial);
         }
     }
 }
示例#27
0
    static public Mesh GeneratePolygonMesh(Vector2D pos, Polygon2D.PolygonType polygonType, float polygonSize, float minVertexDistance, Transform transform, float lineWidth, float zPosition)
    {
        Mesh2DMesh trianglesList = new Mesh2DMesh();

        Polygon2D slicePolygon = Polygon2D.Create(polygonType, polygonSize).ToOffset(pos);

        Vector2D vA, vB;

        foreach (Pair2D pair in Pair2D.GetList(slicePolygon.pointsList, true))
        {
            vA = new Vector2D(pair.A);
            vB = new Vector2D(pair.B);

            vA.Push(Vector2D.Atan2(pair.A, pair.B), -minVertexDistance / 5);
            vB.Push(Vector2D.Atan2(pair.A, pair.B), minVertexDistance / 5);

            trianglesList.Add(Max2DMesh.CreateLine(new Pair2D(vA, vB), transform.localScale, lineWidth, zPosition));
        }

        return(Max2DMesh.Export(trianglesList));
    }
示例#28
0
    static public Mesh GeneratePolygon2DMesh(Transform transform, Polygon2D polygon, float lineOffset, float lineWidth, bool connectedLine)
    {
        Mesh2DMesh trianglesList = new Mesh2DMesh();

        Polygon2D poly = polygon;

        foreach (Pair2D p in Pair2D.GetList(poly.pointsList, connectedLine))
        {
            trianglesList.Add(Max2DMesh.CreateLine(p, transform.localScale, lineWidth, lineOffset));
        }

        foreach (Polygon2D hole in poly.holesList)
        {
            foreach (Pair2D p in Pair2D.GetList(hole.pointsList, connectedLine))
            {
                trianglesList.Add(Max2DMesh.CreateLine(p, transform.localScale, lineWidth, lineOffset));
            }
        }

        return(Max2DMesh.Export(trianglesList));
    }
示例#29
0
    public void Draw()
    {
        if (lineBorder && meshBorder.Count > 0)
        {
            if (meshBorder.Count > 0)
            {
                foreach (Mesh m in meshBorder)
                {
                    Max2DMesh.Draw(m, GetBorderMaterial());
                }
            }
        }

        if (mesh.Count > 0)
        {
            foreach (Mesh m in mesh)
            {
                Max2DMesh.Draw(m, GetFillMaterial());
            }
        }

        if (customEndingsPosition.Count > 0)
        {
            Matrix4x4 matrix;
            foreach (Pair2D pair in customEndingsPosition)
            {
                Polygon2D polyA = Polygon2D.CreateFromRect(new Vector2(1, 1));
                //polyA.ToOffset(pair.A);
                Mesh mA = polyA.CreateMesh(new Vector2(2, 2), Vector2.zero);

                matrix = Matrix4x4.TRS(pair.A.ToVector3(zPosition), Quaternion.Euler(0, 0, 0), new Vector3(1, 1, 1));

                Graphics.DrawMesh(mA, matrix, customEndingImageMaterial, 0);

                matrix = Matrix4x4.TRS(pair.B.ToVector3(zPosition), Quaternion.Euler(0, 0, 0), new Vector3(1, 1, 1));

                Graphics.DrawMesh(mA, matrix, customEndingImageMaterial, 0);
            }
        }
    }
    public void Draw()
    {
        SmartMaterial mat;

        if (customColor)
        {
            mat = GetMaterial();
            if (mat != null)
            {
                mat.SetColor(color);
                Max2DMesh.Draw(mesh, transform, mat.material);
            }
        }
        else
        {
            mat = GetStaticMaterial();
            if (mat != null)
            {
                Max2DMesh.Draw(mesh, transform, mat.material);
            }
        }
    }