Beispiel #1
0
    public void ChangePivot(PIVOT_POSITION pivot)
    {
        if (_pivot == pivot)
        {
            return;
        }

        float w = size.x, h = size.y;

        Vector3[] vertices = new Vector3[4];

        if (pivot == PIVOT_POSITION.CENTER)
        {
            vertices[0] = new Vector3(-w / 2, h / 2, 0);
            vertices[1] = new Vector3(w / 2, h / 2, 0);
            vertices[2] = new Vector3(-w / 2, -h / 2, 0);
            vertices[3] = new Vector3(w / 2, -h / 2, 0);
        }
        else if (pivot == PIVOT_POSITION.BOTTOM)
        {
            vertices[0] = new Vector3(-w / 2, h, 0);
            vertices[1] = new Vector3(w / 2, h, 0);
            vertices[2] = new Vector3(-w / 2, 0, 0);
            vertices[3] = new Vector3(w / 2, 0, 0);
        }
        else
        {
            throw new UnityException("NOT IMPLEMENTED YET");
        }

        mesh.vertices = vertices;

        Vector2[] uvs = new Vector2[4];
        Rect      r   = _uvRect;

        uvs[0] = new Vector2(r.x, r.y + r.height);
        uvs[1] = new Vector2(r.x + r.width, r.y + r.height);
        uvs[2] = new Vector2(r.x, r.y);
        uvs[3] = new Vector2(r.x + r.width, r.y);

        mesh.uv = uvs;

        mesh.RecalculateBounds();
        mesh.RecalculateNormals();

        _pivot = pivot;
    }
Beispiel #2
0
    public void ChangePivot(PIVOT_POSITION pivot)
    {
        if (_pivot == pivot) return;

        float w = size.x, h = size.y;
        Vector3[] vertices = new Vector3[4];

        if (pivot == PIVOT_POSITION.CENTER)
        {
            vertices[0] = new Vector3(-w / 2, h / 2, 0);
            vertices[1] = new Vector3(w / 2, h / 2, 0);
            vertices[2] = new Vector3(-w / 2, -h / 2, 0);
            vertices[3] = new Vector3(w / 2, -h / 2, 0);
        }
        else if (pivot == PIVOT_POSITION.BOTTOM)
        {
            vertices[0] = new Vector3(-w / 2, h, 0);
            vertices[1] = new Vector3(w / 2, h, 0);
            vertices[2] = new Vector3(-w / 2, 0, 0);
            vertices[3] = new Vector3(w / 2, 0, 0);
        }
        else
        {
            throw new UnityException("NOT IMPLEMENTED YET");
        }

        mesh.vertices = vertices;

        Vector2[] uvs = new Vector2[4];
        Rect r = _uvRect;

        uvs[0] = new Vector2(r.x, r.y + r.height);
        uvs[1] = new Vector2(r.x + r.width, r.y + r.height);
        uvs[2] = new Vector2(r.x, r.y);
        uvs[3] = new Vector2(r.x + r.width, r.y);

        mesh.uv = uvs;

        mesh.RecalculateBounds();
        mesh.RecalculateNormals();

        _pivot = pivot;
    }