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); }
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); } }
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); } } }
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); }