Exemplo n.º 1
0
    public void Draw()
    {
        if (lineBorder && meshBorder.Count > 0)
        {
            if (meshBorder.Count > 0)
            {
                foreach (Mesh m in meshBorder)
                {
                    RendererObject renderObject = GetFreeRenderObject();
                    renderObject.drawn = true;
                    renderObject.meshRenderer.sharedMaterial = GetBorderMaterial();
                    renderObject.meshFilter.sharedMesh       = m;
                }
            }
        }

        if (mesh.Count > 0)
        {
            foreach (Mesh m in mesh)
            {
                RendererObject renderObject = GetFreeRenderObject();
                renderObject.drawn = true;
                renderObject.meshRenderer.sharedMaterial = GetFillMaterial();
                renderObject.meshFilter.sharedMesh       = m;
            }
        }
    }
Exemplo n.º 2
0
    public RendererObject GetFreeRenderObject()
    {
        foreach (RendererObject renderObject in rendererObjects)
        {
            if (renderObject.drawn == false)
            {
                return(renderObject);
            }
        }

        RendererObject newRenderGameObject = new RendererObject(gameObject);

        newRenderGameObject.meshRenderer.sortingOrder     = sortingOrder;
        newRenderGameObject.meshRenderer.sortingLayerName = sortingLayerName;

        rendererObjects.Add(newRenderGameObject);

        return(newRenderGameObject);
    }
Exemplo n.º 3
0
        // Visuals
        //GameObject visualsGameObject;
        //MeshFilter visualMeshFilter;
        //MeshRenderer visualMeshRenderer;

        public void Draw()
        {
            if (lineBorder && meshBorder.Count > 0)
            {
                if (meshBorder.Count > 0)
                {
                    foreach (Mesh m in meshBorder)
                    {
                        RendererObject renderObject = GetFreeRenderObject();
                        renderObject.drawn = true;
                        renderObject.meshRenderer.sharedMaterial = GetBorderMaterial();
                        renderObject.meshFilter.sharedMesh       = m;
                        renderObject.transform.position          = Vector3.zero;

                        Vector3 lScale = renderObject.transform.parent.lossyScale;
                        lScale.x = 1f / lScale.x;
                        lScale.y = 1f / lScale.y;
                        lScale.z = 1f / lScale.z;
                        renderObject.transform.localScale = lScale;
                    }
                }
            }

            if (mesh.Count > 0)
            {
                foreach (Mesh m in mesh)
                {
                    RendererObject renderObject = GetFreeRenderObject();
                    renderObject.drawn = true;
                    renderObject.meshRenderer.sharedMaterial = GetFillMaterial();
                    renderObject.meshFilter.sharedMesh       = m;
                    renderObject.transform.position          = Vector3.zero;

                    Vector3 lScale = renderObject.transform.parent.lossyScale;
                    lScale.x = 1f / lScale.x;
                    lScale.y = 1f / lScale.y;
                    lScale.z = 1f / lScale.z;
                    renderObject.transform.localScale = lScale;
                }
            }

            // Does not use Mesh Renderer Object
            if (customEndingsPosition.Count > 0)
            {
                Matrix4x4 matrix;
                foreach (Pair2 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);
                }
            }
        }