コード例 #1
0
            public override void Render(VertexHelper vh, Rect area, Vector2 offset, float pixelsPerUnit)
            {
                Color currentColor = node.d_color;

                if (currentColor.a <= 0.01f)
                {
                    return;
                }

                var uv = UnityEngine.Sprites.DataUtility.GetOuterUV(sprite.Get());

                Vector2 leftPos = GetStartLeftBottom(1f) + offset;

                Tools.LB2LT(ref leftPos, area.height);

                float width  = rect.width;
                float height = rect.height;

                int count = vh.currentVertCount;

                vh.AddVert(new Vector3(leftPos.x, leftPos.y), currentColor, new Vector2(uv.x, uv.y));
                vh.AddVert(new Vector3(leftPos.x, leftPos.y + height), currentColor, new Vector2(uv.x, uv.w));
                vh.AddVert(new Vector3(leftPos.x + width, leftPos.y + height), currentColor, new Vector2(uv.z, uv.w));
                vh.AddVert(new Vector3(leftPos.x + width, leftPos.y), currentColor, new Vector2(uv.z, uv.y));

                vh.AddTriangle(count, count + 1, count + 2);
                vh.AddTriangle(count + 2, count + 3, count);
            }
コード例 #2
0
        public void cacheISprite(Line l, NodeBase n, ISprite sprite, Rect rect)
        {
            var s = sprite.Get();

            if (s != null)
            {
                cacheSprite(l, n, sprite, rect);
            }
            else
            {
                ISpriteData cd = PoolData <ISpriteData> .Get();

                cd.Reset(n, sprite, rect, l);
                DataList.Add(cd);
            }
        }
コード例 #3
0
        public void cacheSprite(Line l, NodeBase n, ISprite sprite, Rect rect)
        {
            if (sprite != null)
            {
                var        s  = sprite.Get();
                SpriteData sd = PoolData <SpriteData> .Get();

                sd.Reset(n, sprite, rect, l);
                DataList.Add(sd);

                sd.subMaterial = materials.IndexOf(s.texture);
                if (sd.subMaterial == -1)
                {
                    sd.subMaterial = materials.Count;
                    materials.Add(s.texture);
                }
            }
        }
コード例 #4
0
ファイル: CartoonDraw.cs プロジェクト: wuxiongbin/uHyperText
        public void Rebuild(CanvasUpdate executing)
        {
            if (executing != CanvasUpdate.PreRender)
            {
                return;
            }

            if (mData == null)
            {
                return;
            }

            if (frameIndex < 0)
            {
                frameIndex = 0;
            }

            ISprite si = cartoon.frames[frameIndex].sprite;
            Sprite  s  = si.Get();

            if (s == null)
            {
                currentIsEmpty = true;
                return;
            }

            currentIsEmpty = false;
            var          uv = UnityEngine.Sprites.DataUtility.GetOuterUV(s);
            VertexHelper vh = Tools.vertexHelper;

            vh.Clear();
            for (int i = 0; i < mData.Count; ++i)
            {
                mData[i].Gen(vh, uv);
            }

            Mesh workerMesh = SymbolText.WorkerMesh;

            vh.FillMesh(workerMesh);
            canvasRenderer.SetMesh(workerMesh);
            canvasRenderer.SetTexture(s.texture);
        }