Пример #1
0
    public static void UpdateMeshUVs(MeshFilter meshFilter, Rect uv, NcSpriteFactory.ALIGN_TYPE alignType, float fHShowRate)
    {
        Vector2[] array = new Vector2[4];
        float     num   = 1f;

        if (alignType == NcSpriteFactory.ALIGN_TYPE.LEFTCENTER && 0f < fHShowRate)
        {
            num = fHShowRate;
        }
        array[0]           = new Vector2(uv.x + uv.width * num, uv.y + uv.height);
        array[1]           = new Vector2(uv.x + uv.width * num, uv.y);
        array[2]           = new Vector2(uv.x, uv.y);
        array[3]           = new Vector2(uv.x, uv.y + uv.height);
        meshFilter.mesh.uv = array;
    }
Пример #2
0
    public static void UpdatePlane(MeshFilter meshFilter, float fUvScale, NcSpriteFactory.NcFrameInfo ncSpriteFrameInfo, NcSpriteFactory.ALIGN_TYPE alignType)
    {
        Vector2 vector = new Vector2(fUvScale * ncSpriteFrameInfo.m_FrameScale.x, fUvScale * ncSpriteFrameInfo.m_FrameScale.y);
        float   num    = (alignType != NcSpriteFactory.ALIGN_TYPE.BOTTOM) ? ((alignType != NcSpriteFactory.ALIGN_TYPE.TOP) ? 0f : (-1f * vector.y)) : (1f * vector.y);

        Vector3[] vertices = new Vector3[]
        {
            new Vector3(ncSpriteFrameInfo.m_FrameUvOffset.xMax * vector.x, ncSpriteFrameInfo.m_FrameUvOffset.yMax * vector.y + num),
            new Vector3(ncSpriteFrameInfo.m_FrameUvOffset.xMax * vector.x, ncSpriteFrameInfo.m_FrameUvOffset.yMin * vector.y + num),
            new Vector3(ncSpriteFrameInfo.m_FrameUvOffset.xMin * vector.x, ncSpriteFrameInfo.m_FrameUvOffset.yMin * vector.y + num),
            new Vector3(ncSpriteFrameInfo.m_FrameUvOffset.xMin * vector.x, ncSpriteFrameInfo.m_FrameUvOffset.yMax * vector.y + num)
        };
        meshFilter.mesh.vertices = vertices;
        meshFilter.mesh.RecalculateBounds();
    }
Пример #3
0
    public static void CreatePlane(MeshFilter meshFilter, float fUvScale, NcSpriteFactory.NcFrameInfo ncSpriteFrameInfo, NcSpriteFactory.ALIGN_TYPE alignType, NcSpriteFactory.MESH_TYPE m_MeshType)
    {
        Vector2 vector = new Vector2(fUvScale * ncSpriteFrameInfo.m_FrameScale.x, fUvScale * ncSpriteFrameInfo.m_FrameScale.y);
        float   num    = (alignType != NcSpriteFactory.ALIGN_TYPE.BOTTOM) ? ((alignType != NcSpriteFactory.ALIGN_TYPE.TOP) ? 0f : (-1f * vector.y)) : (1f * vector.y);

        Vector3[] vertices = new Vector3[]
        {
            new Vector3(ncSpriteFrameInfo.m_FrameUvOffset.xMax * vector.x, ncSpriteFrameInfo.m_FrameUvOffset.yMax * vector.y + num),
            new Vector3(ncSpriteFrameInfo.m_FrameUvOffset.xMax * vector.x, ncSpriteFrameInfo.m_FrameUvOffset.yMin * vector.y + num),
            new Vector3(ncSpriteFrameInfo.m_FrameUvOffset.xMin * vector.x, ncSpriteFrameInfo.m_FrameUvOffset.yMin * vector.y + num),
            new Vector3(ncSpriteFrameInfo.m_FrameUvOffset.xMin * vector.x, ncSpriteFrameInfo.m_FrameUvOffset.yMax * vector.y + num)
        };
        Color[] colors = new Color[]
        {
            Color.white,
            Color.white,
            Color.white,
            Color.white
        };
        Vector3[] normals = new Vector3[]
        {
            new Vector3(0f, 0f, -1f),
            new Vector3(0f, 0f, -1f),
            new Vector3(0f, 0f, -1f),
            new Vector3(0f, 0f, -1f)
        };
        Vector4[] tangents = new Vector4[]
        {
            new Vector4(1f, 0f, 0f, -1f),
            new Vector4(1f, 0f, 0f, -1f),
            new Vector4(1f, 0f, 0f, -1f),
            new Vector4(1f, 0f, 0f, -1f)
        };
        int[] triangles;
        if (m_MeshType == NcSpriteFactory.MESH_TYPE.BuiltIn_Plane)
        {
            triangles = new int[]
            {
                1,
                2,
                0,
                0,
                2,
                3
            };
        }
        else
        {
            triangles = new int[]
            {
                1,
                2,
                0,
                0,
                2,
                3,
                1,
                0,
                3,
                3,
                2,
                1
            };
        }
        Vector2[] uv = new Vector2[]
        {
            new Vector2(1f, 1f),
            new Vector2(1f, 0f),
            new Vector2(0f, 0f),
            new Vector2(0f, 1f)
        };
        meshFilter.mesh.Clear();
        meshFilter.mesh.vertices  = vertices;
        meshFilter.mesh.colors    = colors;
        meshFilter.mesh.normals   = normals;
        meshFilter.mesh.tangents  = tangents;
        meshFilter.mesh.triangles = triangles;
        meshFilter.mesh.uv        = uv;
        meshFilter.mesh.RecalculateBounds();
    }
Пример #4
0
    public static void CreatePlane(MeshFilter meshFilter, float fUvScale, NcSpriteFactory.NcFrameInfo ncSpriteFrameInfo, NcSpriteFactory.ALIGN_TYPE alignType, NcSpriteFactory.MESH_TYPE m_MeshType)
    {
        Vector2 vector = new Vector2(fUvScale * ncSpriteFrameInfo.m_FrameScale.x, fUvScale * ncSpriteFrameInfo.m_FrameScale.y);
        float   num    = (alignType != NcSpriteFactory.ALIGN_TYPE.BOTTOM) ? ((alignType != NcSpriteFactory.ALIGN_TYPE.TOP) ? 0f : (-1f * vector.y)) : (1f * vector.y);

        Vector3[] vertices = new Vector3[]
        {
            new Vector3(ncSpriteFrameInfo.m_FrameUvOffset.get_xMax() * vector.x, ncSpriteFrameInfo.m_FrameUvOffset.get_yMax() * vector.y + num),
            new Vector3(ncSpriteFrameInfo.m_FrameUvOffset.get_xMax() * vector.x, ncSpriteFrameInfo.m_FrameUvOffset.get_yMin() * vector.y + num),
            new Vector3(ncSpriteFrameInfo.m_FrameUvOffset.get_xMin() * vector.x, ncSpriteFrameInfo.m_FrameUvOffset.get_yMin() * vector.y + num),
            new Vector3(ncSpriteFrameInfo.m_FrameUvOffset.get_xMin() * vector.x, ncSpriteFrameInfo.m_FrameUvOffset.get_yMax() * vector.y + num)
        };
        Color[] colors = new Color[]
        {
            Color.get_white(),
                Color.get_white(),
                Color.get_white(),
                Color.get_white()
        };
        Vector3[] normals = new Vector3[]
        {
            new Vector3(0f, 0f, -1f),
            new Vector3(0f, 0f, -1f),
            new Vector3(0f, 0f, -1f),
            new Vector3(0f, 0f, -1f)
        };
        Vector4[] tangents = new Vector4[]
        {
            new Vector4(1f, 0f, 0f, -1f),
            new Vector4(1f, 0f, 0f, -1f),
            new Vector4(1f, 0f, 0f, -1f),
            new Vector4(1f, 0f, 0f, -1f)
        };
        int[] triangles;
        if (m_MeshType == NcSpriteFactory.MESH_TYPE.BuiltIn_Plane)
        {
            triangles = new int[]
            {
                1,
                2,
                0,
                0,
                2,
                3
            };
        }
        else
        {
            triangles = new int[]
            {
                1,
                2,
                0,
                0,
                2,
                3,
                1,
                0,
                3,
                3,
                2,
                1
            };
        }
        Vector2[] uv = new Vector2[]
        {
            new Vector2(1f, 1f),
            new Vector2(1f, 0f),
            new Vector2(0f, 0f),
            new Vector2(0f, 1f)
        };
        meshFilter.get_mesh().Clear();
        meshFilter.get_mesh().set_vertices(vertices);
        meshFilter.get_mesh().set_colors(colors);
        meshFilter.get_mesh().set_normals(normals);
        meshFilter.get_mesh().set_tangents(tangents);
        meshFilter.get_mesh().set_triangles(triangles);
        meshFilter.get_mesh().set_uv(uv);
        meshFilter.get_mesh().RecalculateBounds();
    }
    public static void UpdatePlane(MeshFilter meshFilter, float fUvScale, NcSpriteFactory.NcFrameInfo ncSpriteFrameInfo, bool bTrimCenterAlign, NcSpriteFactory.ALIGN_TYPE alignType)
    {
        Vector2 vector        = new Vector2(fUvScale * ncSpriteFrameInfo.m_FrameScale.x, fUvScale * ncSpriteFrameInfo.m_FrameScale.y);
        float   num           = (alignType == NcSpriteFactory.ALIGN_TYPE.BOTTOM) ? (1f * vector.y) : ((alignType == NcSpriteFactory.ALIGN_TYPE.TOP) ? (-1f * vector.y) : 0f);
        Rect    frameUvOffset = ncSpriteFrameInfo.m_FrameUvOffset;

        if (bTrimCenterAlign)
        {
            frameUvOffset.center = Vector2.zero;
        }
        Vector3[] vertices = new Vector3[]
        {
            new Vector3(frameUvOffset.xMax * vector.x, frameUvOffset.yMax * vector.y + num),
            new Vector3(frameUvOffset.xMax * vector.x, frameUvOffset.yMin * vector.y + num),
            new Vector3(frameUvOffset.xMin * vector.x, frameUvOffset.yMin * vector.y + num),
            new Vector3(frameUvOffset.xMin * vector.x, frameUvOffset.yMax * vector.y + num)
        };
        meshFilter.mesh.vertices = vertices;
        meshFilter.mesh.RecalculateBounds();
    }
Пример #6
0
    public static void UpdatePlane(MeshFilter meshFilter, float fUvScale, NcSpriteFactory.NcFrameInfo ncSpriteFrameInfo, bool bTrimCenterAlign, NcSpriteFactory.ALIGN_TYPE alignType, float fHShowRate)
    {
        Vector2 vector        = new Vector2(fUvScale * ncSpriteFrameInfo.m_FrameScale.x, fUvScale * ncSpriteFrameInfo.m_FrameScale.y);
        float   num           = (alignType != NcSpriteFactory.ALIGN_TYPE.BOTTOM) ? ((alignType != NcSpriteFactory.ALIGN_TYPE.TOP) ? 0f : (-1f * vector.y)) : (1f * vector.y);
        float   num2          = (alignType != NcSpriteFactory.ALIGN_TYPE.LEFTCENTER) ? ((alignType != NcSpriteFactory.ALIGN_TYPE.RIGHTCENTER) ? 0f : (-1f * vector.x)) : (1f * vector.x);
        Rect    frameUvOffset = ncSpriteFrameInfo.m_FrameUvOffset;

        if (bTrimCenterAlign)
        {
            frameUvOffset.center = Vector2.zero;
        }
        Vector3[] array = new Vector3[4];
        if (alignType == NcSpriteFactory.ALIGN_TYPE.LEFTCENTER && 0f < fHShowRate)
        {
            array[0] = new Vector3(frameUvOffset.xMax * vector.x * fHShowRate + num2 * fHShowRate, frameUvOffset.yMax * vector.y + num);
            array[1] = new Vector3(frameUvOffset.xMax * vector.x * fHShowRate + num2 * fHShowRate, frameUvOffset.yMin * vector.y + num);
        }
        else
        {
            array[0] = new Vector3(frameUvOffset.xMax * vector.x + num2, frameUvOffset.yMax * vector.y + num);
            array[1] = new Vector3(frameUvOffset.xMax * vector.x + num2, frameUvOffset.yMin * vector.y + num);
        }
        array[2] = new Vector3(frameUvOffset.xMin * vector.x, frameUvOffset.yMin * vector.y + num);
        array[3] = new Vector3(frameUvOffset.xMin * vector.x, frameUvOffset.yMax * vector.y + num);
        meshFilter.mesh.vertices = array;
        meshFilter.mesh.RecalculateBounds();
    }
Пример #7
0
    public static void CreatePlane(MeshFilter meshFilter, float fUvScale, NcSpriteFactory.NcFrameInfo ncSpriteFrameInfo, bool bTrimCenterAlign, NcSpriteFactory.ALIGN_TYPE alignType, NcSpriteFactory.MESH_TYPE m_MeshType, float fHShowRate)
    {
        Vector2 vector        = new Vector2(fUvScale * ncSpriteFrameInfo.m_FrameScale.x, fUvScale * ncSpriteFrameInfo.m_FrameScale.y);
        float   num           = (alignType != NcSpriteFactory.ALIGN_TYPE.BOTTOM) ? ((alignType != NcSpriteFactory.ALIGN_TYPE.TOP) ? 0f : (-1f * vector.y)) : (1f * vector.y);
        float   num2          = (alignType != NcSpriteFactory.ALIGN_TYPE.LEFTCENTER) ? ((alignType != NcSpriteFactory.ALIGN_TYPE.RIGHTCENTER) ? 0f : (-1f * vector.x)) : (1f * vector.x);
        Rect    frameUvOffset = ncSpriteFrameInfo.m_FrameUvOffset;

        if (bTrimCenterAlign)
        {
            frameUvOffset.center = Vector2.zero;
        }
        Vector3[] array = new Vector3[4];
        if (alignType == NcSpriteFactory.ALIGN_TYPE.LEFTCENTER && 0f < fHShowRate)
        {
            array[0] = new Vector3(frameUvOffset.xMax * vector.x * fHShowRate + num2 * fHShowRate, frameUvOffset.yMax * vector.y + num);
            array[1] = new Vector3(frameUvOffset.xMax * vector.x * fHShowRate + num2 * fHShowRate, frameUvOffset.yMin * vector.y + num);
        }
        else
        {
            array[0] = new Vector3(frameUvOffset.xMax * vector.x + num2, frameUvOffset.yMax * vector.y + num);
            array[1] = new Vector3(frameUvOffset.xMax * vector.x + num2, frameUvOffset.yMin * vector.y + num);
        }
        array[2] = new Vector3(frameUvOffset.xMin * vector.x + num2, frameUvOffset.yMin * vector.y + num);
        array[3] = new Vector3(frameUvOffset.xMin * vector.x + num2, frameUvOffset.yMax * vector.y + num);
        Color color = Color.white;

        if (meshFilter.mesh.colors != null && 0 < meshFilter.mesh.colors.Length)
        {
            color = meshFilter.mesh.colors[0];
        }
        Color[] colors = new Color[]
        {
            color,
            color,
            color,
            color
        };
        Vector3[] normals = new Vector3[]
        {
            new Vector3(0f, 0f, -1f),
            new Vector3(0f, 0f, -1f),
            new Vector3(0f, 0f, -1f),
            new Vector3(0f, 0f, -1f)
        };
        Vector4[] tangents = new Vector4[]
        {
            new Vector4(1f, 0f, 0f, -1f),
            new Vector4(1f, 0f, 0f, -1f),
            new Vector4(1f, 0f, 0f, -1f),
            new Vector4(1f, 0f, 0f, -1f)
        };
        int[] triangles;
        if (m_MeshType == NcSpriteFactory.MESH_TYPE.BuiltIn_Plane)
        {
            triangles = new int[]
            {
                1,
                2,
                0,
                0,
                2,
                3
            };
        }
        else
        {
            triangles = new int[]
            {
                1,
                2,
                0,
                0,
                2,
                3,
                1,
                0,
                3,
                3,
                2,
                1
            };
        }
        Vector2[] array2 = new Vector2[4];
        float     x      = 1f;

        if (alignType == NcSpriteFactory.ALIGN_TYPE.LEFTCENTER && 0f < fHShowRate)
        {
            x = fHShowRate;
        }
        array2[0] = new Vector2(x, 1f);
        array2[1] = new Vector2(x, 0f);
        array2[2] = new Vector2(0f, 0f);
        array2[3] = new Vector2(0f, 1f);
        meshFilter.mesh.Clear();
        meshFilter.mesh.vertices  = array;
        meshFilter.mesh.colors    = colors;
        meshFilter.mesh.normals   = normals;
        meshFilter.mesh.tangents  = tangents;
        meshFilter.mesh.triangles = triangles;
        meshFilter.mesh.uv        = array2;
        meshFilter.mesh.RecalculateBounds();
    }