private void Update() { if (this.frames == null || this.frames.Length == 0) { base.enabled = false; } else { if (this.framerate != 0) { float num = (!this.ignoreTimeScale) ? Time.time : RealTime.time; if (this.mUpdate < num) { this.mUpdate = num; int num2 = (this.framerate <= 0) ? (this.mIndex - 1) : (this.mIndex + 1); if (!this.loop && (num2 < 0 || num2 >= this.frames.Length)) { base.enabled = false; return; } this.mIndex = NGUIMath.RepeatIndex(num2, this.frames.Length); this.UpdateSprite(); } } } }
public static unsafe float DistanceToRectangle(Vector2[] screenPoints, Vector2 mousePos) { bool flag = false; int val = 4; for (int i = 0; i < 5; i++) { Vector3 vector = screenPoints[NGUIMath.RepeatIndex(i, 4)]; Vector3 vector2 = screenPoints[NGUIMath.RepeatIndex(val, 4)]; if (((vector.y > mousePos.y) != (vector2.y > mousePos.y)) && (mousePos.x < ((((vector2.x - vector.x) * (mousePos.y - vector.y)) / (vector2.y - vector.y)) + vector.x))) { flag = !flag; } val = i; } if (flag) { return(0f); } float num4 = -1f; for (int j = 0; j < 4; j++) { Vector3 a = screenPoints[j]; Vector3 b = screenPoints[NGUIMath.RepeatIndex(j + 1, 4)]; float num3 = DistancePointToLineSegment(mousePos, a, b); if ((num3 < num4) || (num4 < 0f)) { num4 = num3; } } return(num4); }
/// <summary> /// Add a border around the sprite that copies the pixels from the opposite side, making it possible for the sprite to tile without seams. /// </summary> void AddTiledBorder(UISpriteData sprite) { List <UIAtlasMaker.SpriteEntry> sprites = new List <UIAtlasMaker.SpriteEntry>(); UIAtlasMaker.ExtractSprites(mAtlas, sprites); UIAtlasMaker.SpriteEntry se = null; for (int i = 0; i < sprites.Count; ++i) { if (sprites[i].name == sprite.name) { se = sprites[i]; break; } } if (se != null) { int w1 = se.tex.width - se.borderLeft - se.borderRight; int h1 = se.tex.height - se.borderBottom - se.borderTop; int w2 = se.tex.width + 2; int h2 = se.tex.height + 2; Color32[] c1 = se.tex.GetPixels32(); Color32[] c2 = new Color32[w2 * h2]; for (int y2 = 0; y2 < h2; ++y2) { int y1 = se.borderBottom + NGUIMath.RepeatIndex(y2 - se.borderBottom - 1, h1); for (int x2 = 0; x2 < w2; ++x2) { int x1 = se.borderLeft + NGUIMath.RepeatIndex(x2 - se.borderLeft - 1, w1); c2[x2 + y2 * w2] = c1[x1 + y1 * se.tex.width]; } } if (se.temporaryTexture) { DestroyImmediate(se.tex); } ++se.borderLeft; ++se.borderRight; ++se.borderTop; ++se.borderBottom; se.tex = new Texture2D(w2, h2); se.tex.name = sprite.name; se.tex.SetPixels32(c2); se.tex.Apply(); se.temporaryTexture = true; UIAtlasMaker.UpdateAtlas(mAtlas, sprites); DestroyImmediate(se.tex); se.tex = null; } }
/// <summary> /// Advance the animation as necessary. /// </summary> void Update() { if (frames == null || frames.Length == 0) { Destroy(gameObject); } else if (framerate != 0) { float time = ignoreTimeScale ? RealTime.time : Time.time; if (mUpdate < time) { mUpdate = time; int newIndex = framerate > 0 ? mIndex + 1 : mIndex - 1; if (!loop && (newIndex < 0 || newIndex >= frames.Length)) { Destroy(gameObject); return; } mIndex = NGUIMath.RepeatIndex(newIndex, frames.Length); UpdateSprite(); } } }
static public int RepeatIndex_s(IntPtr l) { try { #if DEBUG var method = System.Reflection.MethodBase.GetCurrentMethod(); string methodName = GetMethodName(method); #if UNITY_5_5_OR_NEWER UnityEngine.Profiling.Profiler.BeginSample(methodName); #else Profiler.BeginSample(methodName); #endif #endif System.Int32 a1; checkType(l, 1, out a1); System.Int32 a2; checkType(l, 2, out a2); var ret = NGUIMath.RepeatIndex(a1, a2); pushValue(l, true); pushValue(l, ret); return(2); } catch (Exception e) { return(error(l, e)); } #if DEBUG finally { #if UNITY_5_5_OR_NEWER UnityEngine.Profiling.Profiler.EndSample(); #else Profiler.EndSample(); #endif } #endif }
private void Update() { if (frames == null || frames.Length == 0) { base.enabled = false; } else { if (framerate == 0) { return; } float num = (!ignoreTimeScale) ? Time.time : RealTime.time; if (mUpdate < num) { mUpdate = num; int num2 = (framerate <= 0) ? (mIndex - 1) : (mIndex + 1); if (!loop && (num2 < 0 || num2 >= frames.Length)) { base.enabled = false; return; } mIndex = NGUIMath.RepeatIndex(num2, frames.Length); UpdateSprite(); } } }
/// <summary> /// Advance the animation as necessary. /// </summary> void Update() { if (animations == null || animations.Length == 0 || animations[currentAnimation].frames.Length == 0) { enabled = false; } else if (framerate != 0) { float time = ignoreTimeScale ? RealTime.time : Time.time; if (mUpdate < time) { mUpdate = time; int newIndex = framerate > 0 ? mIndex + 1 : mIndex - 1; if (!animations[currentAnimation].loop && (newIndex < 0 || newIndex >= animations[currentAnimation].frames.Length)) { enabled = false; return; } mIndex = NGUIMath.RepeatIndex(newIndex, animations[currentAnimation].frames.Length); UpdateSprite(); } } }
private void Update() { if (frames == null || frames.Length == 0) { this.set_enabled(false); } else if (framerate != 0) { float num = (!ignoreTimeScale) ? Time.get_time() : RealTime.time; if (mUpdate < num) { mUpdate = num; int num2 = (framerate <= 0) ? (mIndex - 1) : (mIndex + 1); if (!loop && (num2 < 0 || num2 >= frames.Length)) { this.set_enabled(false); } else { mIndex = NGUIMath.RepeatIndex(num2, frames.Length); UpdateSprite(); } } } }
void Update() { if (framerate != 0 && frames != null && frames.Length > 0) { float time = ignoreTimeScale ? RealTime.time : Time.time; if (mUpdate < time) { mUpdate = time; if (isLoop) { mIndex = NGUIMath.RepeatIndex(framerate > 0 ? mIndex + 1 : mIndex - 1, frames.Length); } else { mIndex = (mIndex + 1) >= frames.Length ? mIndex : mIndex + 1; } mUpdate = time + Mathf.Abs(1f / framerate); if (mUnitySprite != null) { mUnitySprite.sprite = frames[mIndex]; } else if (mNguiSprite != null) { mNguiSprite.nextSprite = frames[mIndex]; } } } }
public static float DistanceToRectangle(Vector2[] screenPoints, Vector2 mousePos) { bool flag = false; int val = 4; for (int i = 0; i < 5; i++) { Vector3 vector = screenPoints[NGUIMath.RepeatIndex(i, 4)]; Vector3 vector2 = screenPoints[NGUIMath.RepeatIndex(val, 4)]; if (vector.y > mousePos.y != vector2.y > mousePos.y && mousePos.x < (vector2.x - vector.x) * (mousePos.y - vector.y) / (vector2.y - vector.y) + vector.x) { flag = !flag; } val = i; } if (!flag) { float num = -1f; for (int j = 0; j < 4; j++) { Vector3 v = screenPoints[j]; Vector3 v2 = screenPoints[NGUIMath.RepeatIndex(j + 1, 4)]; float num2 = NGUIMath.DistancePointToLineSegment(mousePos, v, v2); if (num2 < num || num < 0f) { num = num2; } } return(num); } return(0f); }
/// <summary> /// Advance the animation as necessary. /// </summary> void Update() { if (frames == null || frames.Length == 0) { enabled = false; } else if (framerate != 0) { float time = ignoreTimeScale ? RealTime.time : Time.time; if (mUpdate < time) { mUpdate = time; int newIndex = framerate > 0 ? frameIndex + 1 : frameIndex - 1; if (!loop && (newIndex < 0 || newIndex >= frames.Length)) { enabled = false; return; } frameIndex = NGUIMath.RepeatIndex(newIndex, frames.Length); UpdateSprite(); } } }
static public int RepeatIndex_s(IntPtr l) { try { System.Int32 a1; checkType(l, 1, out a1); System.Int32 a2; checkType(l, 2, out a2); var ret = NGUIMath.RepeatIndex(a1, a2); pushValue(l, true); pushValue(l, ret); return(2); } catch (Exception e) { return(error(l, e)); } }
static public int RepeatIndex_s(IntPtr l) { try { System.Int32 a1; checkType(l, 1, out a1); System.Int32 a2; checkType(l, 2, out a2); var ret = NGUIMath.RepeatIndex(a1, a2); pushValue(l, ret); return(1); } catch (Exception e) { LuaDLL.luaL_error(l, e.ToString()); return(0); } }
/// <summary> /// Advance the animation as necessary. /// </summary> void Update() { if (frames == null || frames.Length == 0) { enabled = false; } else if (framerate != 0) { float time = ignoreTimeScale ? RealTime.time : Time.time; if (mUpdate < time) { mUpdate = time; int newIndex = framerate > 0 ? frameIndex + 1 : frameIndex - 1; if (newIndex == _iFrameIndex_Event) { _OnMatchFrameIndex(); _OnMatchFrameIndex = null; _iFrameIndex_Event = -1; } if (!loop && (newIndex < 0 || newIndex >= frames.Length)) { enabled = false; if (p_EVENT_OnEndAnim != null) { p_EVENT_OnEndAnim(); } if (_OnFinishAnim != null) { _OnFinishAnim(); _OnFinishAnim = null; } return; } frameIndex = NGUIMath.RepeatIndex(newIndex, frames.Length); UpdateSprite(); } } }
/// <summary> /// Determine the distance from the mouse position to the screen space rectangle specified by the 4 points. /// </summary> static public float DistanceToRectangle(Vector2[] screenPoints, Vector2 mousePos) { bool oddNodes = false; int j = 4; for (int i = 0; i < 5; i++) { Vector3 v0 = screenPoints[NGUIMath.RepeatIndex(i, 4)]; Vector3 v1 = screenPoints[NGUIMath.RepeatIndex(j, 4)]; if ((v0.y > mousePos.y) != (v1.y > mousePos.y)) { if (mousePos.x < (v1.x - v0.x) * (mousePos.y - v0.y) / (v1.y - v0.y) + v0.x) { oddNodes = !oddNodes; } } j = i; } if (!oddNodes) { float dist, closestDist = -1f; for (int i = 0; i < 4; i++) { Vector3 v0 = screenPoints[i]; Vector3 v1 = screenPoints[NGUIMath.RepeatIndex(i + 1, 4)]; dist = DistancePointToLineSegment(mousePos, v0, v1); if (dist < closestDist || closestDist < 0f) { closestDist = dist; } } return(closestDist); } else { return(0f); } }
// Update is called once per frame void Update() { if (framerate != 0 && frames != null && frames.Count > 0) { float time = ignoreTimeScale ? RealTime.time : Time.time; if (mUpdate < time) { mUpdate = time; mIndex = NGUIMath.RepeatIndex(framerate > 0 ? mIndex + 1 : mIndex - 1, frames.Count); mUpdate = time + Mathf.Abs(1f / framerate); if (sprite != null) { sprite.mainTexture = frames[mIndex]; } } } }
private void Update() { if (this.framerate != 0 && this.frames != null && this.frames.Length > 0) { float num = (!this.ignoreTimeScale) ? Time.time : RealTime.time; if (this.mUpdate < num) { this.mUpdate = num; this.mIndex = NGUIMath.RepeatIndex((this.framerate <= 0) ? (this.mIndex - 1) : (this.mIndex + 1), this.frames.Length); this.mUpdate = num + Mathf.Abs(1f / (float)this.framerate); if (this.mUnitySprite != null) { this.mUnitySprite.sprite = this.frames[this.mIndex]; } else if (this.mNguiSprite != null) { this.mNguiSprite.nextSprite = this.frames[this.mIndex]; } } } }
private void Update() { if (framerate == 0 || frames == null || frames.Length <= 0) { return; } float num = (ignoreTimeScale ? RealTime.time : Time.time); if (mUpdate < num) { mUpdate = num; mIndex = NGUIMath.RepeatIndex((framerate > 0) ? (mIndex + 1) : (mIndex - 1), frames.Length); mUpdate = num + Mathf.Abs(1f / (float)framerate); if (mUnitySprite != null) { mUnitySprite.sprite = frames[mIndex]; } else if (mNguiSprite != null) { mNguiSprite.nextSprite = frames[mIndex]; } } }
/// <summary> /// Adjust the specified quad, making it be radially filled instead. /// </summary> static void RadialCut(Vector2[] xy, float cos, float sin, bool invert, int corner) { var i0 = corner; var i1 = NGUIMath.RepeatIndex(corner + 1, 4); var i2 = NGUIMath.RepeatIndex(corner + 2, 4); var i3 = NGUIMath.RepeatIndex(corner + 3, 4); if ((corner & 1) == 1) { if (sin > cos) { cos /= sin; sin = 1f; if (invert) { xy[i1].x = Mathf.Lerp(xy[i0].x, xy[i2].x, cos); xy[i2].x = xy[i1].x; } } else if (cos > sin) { sin /= cos; cos = 1f; if (!invert) { xy[i2].y = Mathf.Lerp(xy[i0].y, xy[i2].y, sin); xy[i3].y = xy[i2].y; } } else { cos = 1f; sin = 1f; } if (!invert) { xy[i3].x = Mathf.Lerp(xy[i0].x, xy[i2].x, cos); } else { xy[i1].y = Mathf.Lerp(xy[i0].y, xy[i2].y, sin); } } else { if (cos > sin) { sin /= cos; cos = 1f; if (!invert) { xy[i1].y = Mathf.Lerp(xy[i0].y, xy[i2].y, sin); xy[i2].y = xy[i1].y; } } else if (sin > cos) { cos /= sin; sin = 1f; if (invert) { xy[i2].x = Mathf.Lerp(xy[i0].x, xy[i2].x, cos); xy[i3].x = xy[i2].x; } } else { cos = 1f; sin = 1f; } if (invert) { xy[i3].y = Mathf.Lerp(xy[i0].y, xy[i2].y, sin); } else { xy[i1].x = Mathf.Lerp(xy[i0].x, xy[i2].x, cos); } } }
/// <summary> /// Filled sprite fill function. /// </summary> void FilledFill(BetterList <Vector3> verts, BetterList <Vector2> uvs, BetterList <Color32> cols) { if (mFillAmount < 0.001f) { return; } Vector4 v = drawingDimensions; Vector4 u = drawingUVs; Color32 c = drawingColor; // Horizontal and vertical filled sprites are simple -- just end the sprite prematurely if (mFillDirection == FillDirection.Horizontal || mFillDirection == FillDirection.Vertical) { if (mFillDirection == FillDirection.Horizontal) { float fill = (u.z - u.x) * mFillAmount; if (mInvert) { v.x = v.z - (v.z - v.x) * mFillAmount; u.x = u.z - fill; } else { v.z = v.x + (v.z - v.x) * mFillAmount; u.z = u.x + fill; } } else if (mFillDirection == FillDirection.Vertical) { float fill = (u.w - u.y) * mFillAmount; if (mInvert) { v.y = v.w - (v.w - v.y) * mFillAmount; u.y = u.w - fill; } else { v.w = v.y + (v.w - v.y) * mFillAmount; u.w = u.y + fill; } } } mTempPos[0] = new Vector2(v.x, v.y); mTempPos[1] = new Vector2(v.x, v.w); mTempPos[2] = new Vector2(v.z, v.w); mTempPos[3] = new Vector2(v.z, v.y); mTempUVs[0] = new Vector2(u.x, u.y); mTempUVs[1] = new Vector2(u.x, u.w); mTempUVs[2] = new Vector2(u.z, u.w); mTempUVs[3] = new Vector2(u.z, u.y); if (mFillAmount < 1f) { if (mFillDirection == FillDirection.Radial90) { if (RadialCut(mTempPos, mTempUVs, mFillAmount, mInvert, 0)) { for (int i = 0; i < 4; ++i) { verts.Add(mTempPos[i]); uvs.Add(mTempUVs[i]); cols.Add(c); } } return; } if (mFillDirection == FillDirection.Radial180) { for (int side = 0; side < 2; ++side) { float fx0, fx1, fy0, fy1; fy0 = 0f; fy1 = 1f; if (side == 0) { fx0 = 0f; fx1 = 0.5f; } else { fx0 = 0.5f; fx1 = 1f; } mTempPos[0].x = Mathf.Lerp(v.x, v.z, fx0); mTempPos[1].x = mTempPos[0].x; mTempPos[2].x = Mathf.Lerp(v.x, v.z, fx1); mTempPos[3].x = mTempPos[2].x; mTempPos[0].y = Mathf.Lerp(v.y, v.w, fy0); mTempPos[1].y = Mathf.Lerp(v.y, v.w, fy1); mTempPos[2].y = mTempPos[1].y; mTempPos[3].y = mTempPos[0].y; mTempUVs[0].x = Mathf.Lerp(u.x, u.z, fx0); mTempUVs[1].x = mTempUVs[0].x; mTempUVs[2].x = Mathf.Lerp(u.x, u.z, fx1); mTempUVs[3].x = mTempUVs[2].x; mTempUVs[0].y = Mathf.Lerp(u.y, u.w, fy0); mTempUVs[1].y = Mathf.Lerp(u.y, u.w, fy1); mTempUVs[2].y = mTempUVs[1].y; mTempUVs[3].y = mTempUVs[0].y; float val = !mInvert ? fillAmount * 2f - side : mFillAmount * 2f - (1 - side); if (RadialCut(mTempPos, mTempUVs, Mathf.Clamp01(val), !mInvert, NGUIMath.RepeatIndex(side + 3, 4))) { for (int i = 0; i < 4; ++i) { verts.Add(mTempPos[i]); uvs.Add(mTempUVs[i]); cols.Add(c); } } } return; } if (mFillDirection == FillDirection.Radial360) { for (int corner = 0; corner < 4; ++corner) { float fx0, fx1, fy0, fy1; if (corner < 2) { fx0 = 0f; fx1 = 0.5f; } else { fx0 = 0.5f; fx1 = 1f; } if (corner == 0 || corner == 3) { fy0 = 0f; fy1 = 0.5f; } else { fy0 = 0.5f; fy1 = 1f; } mTempPos[0].x = Mathf.Lerp(v.x, v.z, fx0); mTempPos[1].x = mTempPos[0].x; mTempPos[2].x = Mathf.Lerp(v.x, v.z, fx1); mTempPos[3].x = mTempPos[2].x; mTempPos[0].y = Mathf.Lerp(v.y, v.w, fy0); mTempPos[1].y = Mathf.Lerp(v.y, v.w, fy1); mTempPos[2].y = mTempPos[1].y; mTempPos[3].y = mTempPos[0].y; mTempUVs[0].x = Mathf.Lerp(u.x, u.z, fx0); mTempUVs[1].x = mTempUVs[0].x; mTempUVs[2].x = Mathf.Lerp(u.x, u.z, fx1); mTempUVs[3].x = mTempUVs[2].x; mTempUVs[0].y = Mathf.Lerp(u.y, u.w, fy0); mTempUVs[1].y = Mathf.Lerp(u.y, u.w, fy1); mTempUVs[2].y = mTempUVs[1].y; mTempUVs[3].y = mTempUVs[0].y; float val = mInvert ? mFillAmount * 4f - NGUIMath.RepeatIndex(corner + 2, 4) : mFillAmount * 4f - (3 - NGUIMath.RepeatIndex(corner + 2, 4)); if (RadialCut(mTempPos, mTempUVs, Mathf.Clamp01(val), mInvert, NGUIMath.RepeatIndex(corner + 2, 4))) { for (int i = 0; i < 4; ++i) { verts.Add(mTempPos[i]); uvs.Add(mTempUVs[i]); cols.Add(c); } } } return; } } // Fill the buffer with the quad for the sprite for (int i = 0; i < 4; ++i) { verts.Add(mTempPos[i]); uvs.Add(mTempUVs[i]); cols.Add(c); } }
void Update() { if (framerate != 0 && frames != null && frames.Length > 0) { float time = ignoreTimeScale ? RealTime.time : Time.time; if (mUpdate < time) { mUpdate = time; if (this.RepeatAnimation && !this.PingPongBack) { mIndex = NGUIMath.RepeatIndex(framerate > 0 ? mIndex + 1 : mIndex - 1, frames.Length); } else if (!this.RepeatAnimation && !this.PingPongBack) { mIndex = Mathf.Min(frames.Length - 1, mIndex + 1); } else if (this.RepeatAnimation && this.PingPongBack) { if (!this.goingBackwards) { mIndex++; if (mIndex >= frames.Length - 1) { // Next time go backwards this.goingBackwards = true; } } else { mIndex--; if (mIndex <= 0) { // Go forward next time this.goingBackwards = false; } } // Make sure it doesn't go out of bounds mIndex = Mathf.Min(frames.Length - 1, Mathf.Max(0, mIndex)); } else if (!this.RepeatAnimation && this.PingPongBack) { if (!this.goingBackwards) { mIndex++; if (mIndex >= frames.Length - 1) { // Next time go backwards this.goingBackwards = true; } } else { if (mIndex > 0) { mIndex--; } } // Make sure it doesn't go out of bounds mIndex = Mathf.Min(frames.Length - 1, Mathf.Max(0, mIndex)); } mUpdate = time + Mathf.Abs(1f / framerate); if (mUnitySprite != null) { mUnitySprite.sprite = frames[mIndex]; } else if (mNguiSprite != null) { mNguiSprite.nextSprite = frames[mIndex]; } if (mIndex == 0 || mIndex == frames.Length - 1) { this.AnimationEnded = true; if (this.DisableAfterEnded) { this.gameObject.SetActive(false); } } else { this.AnimationEnded = false; } } } }
/// <summary> /// Filled sprite fill function. /// </summary> void FilledFill(BetterList <Vector3> verts, BetterList <Vector2> uvs, BetterList <Color32> cols) { if (mFillAmount < 0.001f) { return; } Vector4 v = drawingDimensions; Vector4 u = drawingUVs; Color32 c = drawingColor; // Horizontal and vertical filled sprites are simple -- just end the sprite prematurely if (mFillDirection == FillDirection.Horizontal || mFillDirection == FillDirection.Vertical) { if (mFillDirection == FillDirection.Horizontal) { float fill = (u.z - u.x) * mFillAmount; if (mInvert) { v.x = v.z - (v.z - v.x) * mFillAmount; u.x = u.z - fill; } else { v.z = v.x + (v.z - v.x) * mFillAmount; u.z = u.x + fill; } } else if (mFillDirection == FillDirection.Vertical) { float fill = (u.w - u.y) * mFillAmount; if (mInvert) { v.y = v.w - (v.w - v.y) * mFillAmount; u.y = u.w - fill; } else { v.w = v.y + (v.w - v.y) * mFillAmount; u.w = u.y + fill; } } } mTempPos[0] = new Vector2(v.x, v.y); mTempPos[1] = new Vector2(v.x, v.w); mTempPos[2] = new Vector2(v.z, v.w); mTempPos[3] = new Vector2(v.z, v.y); mTempUVs[0] = new Vector2(u.x, u.y); mTempUVs[1] = new Vector2(u.x, u.w); mTempUVs[2] = new Vector2(u.z, u.w); mTempUVs[3] = new Vector2(u.z, u.y); if (mFillAmount < 1f) { if (mFillDirection == FillDirection.Radial90) { if (RadialCut(mTempPos, mTempUVs, mFillAmount, mInvert, 0)) { for (int i = 0; i < 4; ++i) { verts.Add(mTempPos[i]); uvs.Add(mTempUVs[i]); cols.Add(c); } } return; } if (mFillDirection == FillDirection.Radial180) { for (int side = 0; side < 2; ++side) { float fx0, fx1, fy0, fy1; fy0 = 0f; fy1 = 1f; if (side == 0) { fx0 = 0f; fx1 = 0.5f; } else { fx0 = 0.5f; fx1 = 1f; } mTempPos[0].x = Mathf.Lerp(v.x, v.z, fx0); mTempPos[1].x = mTempPos[0].x; mTempPos[2].x = Mathf.Lerp(v.x, v.z, fx1); mTempPos[3].x = mTempPos[2].x; mTempPos[0].y = Mathf.Lerp(v.y, v.w, fy0); mTempPos[1].y = Mathf.Lerp(v.y, v.w, fy1); mTempPos[2].y = mTempPos[1].y; mTempPos[3].y = mTempPos[0].y; mTempUVs[0].x = Mathf.Lerp(u.x, u.z, fx0); mTempUVs[1].x = mTempUVs[0].x; mTempUVs[2].x = Mathf.Lerp(u.x, u.z, fx1); mTempUVs[3].x = mTempUVs[2].x; mTempUVs[0].y = Mathf.Lerp(u.y, u.w, fy0); mTempUVs[1].y = Mathf.Lerp(u.y, u.w, fy1); mTempUVs[2].y = mTempUVs[1].y; mTempUVs[3].y = mTempUVs[0].y; float val = !mInvert ? fillAmount * 2f - side : mFillAmount * 2f - (1 - side); if (RadialCut(mTempPos, mTempUVs, Mathf.Clamp01(val), !mInvert, NGUIMath.RepeatIndex(side + 3, 4))) { for (int i = 0; i < 4; ++i) { verts.Add(mTempPos[i]); uvs.Add(mTempUVs[i]); cols.Add(c); } } } return; } if (mFillDirection == FillDirection.Radial360) { for (int corner = 0; corner < 4; ++corner) { float fx0, fx1, fy0, fy1; if (corner < 2) { fx0 = 0f; fx1 = 0.5f; } else { fx0 = 0.5f; fx1 = 1f; } if (corner == 0 || corner == 3) { fy0 = 0f; fy1 = 0.5f; } else { fy0 = 0.5f; fy1 = 1f; } mTempPos[0].x = Mathf.Lerp(v.x, v.z, fx0); mTempPos[1].x = mTempPos[0].x; mTempPos[2].x = Mathf.Lerp(v.x, v.z, fx1); mTempPos[3].x = mTempPos[2].x; mTempPos[0].y = Mathf.Lerp(v.y, v.w, fy0); mTempPos[1].y = Mathf.Lerp(v.y, v.w, fy1); mTempPos[2].y = mTempPos[1].y; mTempPos[3].y = mTempPos[0].y; mTempUVs[0].x = Mathf.Lerp(u.x, u.z, fx0); mTempUVs[1].x = mTempUVs[0].x; mTempUVs[2].x = Mathf.Lerp(u.x, u.z, fx1); mTempUVs[3].x = mTempUVs[2].x; mTempUVs[0].y = Mathf.Lerp(u.y, u.w, fy0); mTempUVs[1].y = Mathf.Lerp(u.y, u.w, fy1); mTempUVs[2].y = mTempUVs[1].y; mTempUVs[3].y = mTempUVs[0].y; float val = mInvert ? mFillAmount * 4f - NGUIMath.RepeatIndex(corner + 2, 4) : mFillAmount * 4f - (3 - NGUIMath.RepeatIndex(corner + 2, 4)); if (RadialCut(mTempPos, mTempUVs, Mathf.Clamp01(val), mInvert, NGUIMath.RepeatIndex(corner + 2, 4))) { for (int i = 0; i < 4; ++i) { verts.Add(mTempPos[i]); uvs.Add(mTempUVs[i]); cols.Add(c); } } } return; } } // @TODO 增加CutCorner // if (mFillDirection == FillDirection.CutCorner) { Vector3[] tempPos = new Vector3[36]; Vector2[] tempUv = new Vector2[36]; float widthDivThree = (drawingDimensions.z - drawingDimensions.x) / 3; float heightDivThree = (drawingDimensions.w - drawingDimensions.y) / 3; float uvWidthDivThree = (drawingUVs.z - drawingUVs.x) / 3; float uvHeightDivThree = (drawingUVs.w - drawingUVs.y) / 3; // column // for (int i = 0; i < 3; i++) { // row // for (int j = 0; j < 3; j++) { tempPos[(i + j * 3) * 4 + 0].x = drawingDimensions.x + i * widthDivThree; tempPos[(i + j * 3) * 4 + 1].x = drawingDimensions.x + (i + 1) * widthDivThree; tempPos[(i + j * 3) * 4 + 2].x = drawingDimensions.x + (i + 1) * widthDivThree; tempPos[(i + j * 3) * 4 + 3].x = drawingDimensions.x + i * widthDivThree; tempPos[(i + j * 3) * 4 + 0].y = drawingDimensions.w - j * heightDivThree; tempPos[(i + j * 3) * 4 + 1].y = drawingDimensions.w - j * heightDivThree; tempPos[(i + j * 3) * 4 + 2].y = drawingDimensions.w - (j + 1) * heightDivThree; tempPos[(i + j * 3) * 4 + 3].y = drawingDimensions.w - (j + 1) * heightDivThree; tempUv[(i + j * 3) * 4 + 0].x = drawingUVs.x + i * uvWidthDivThree; tempUv[(i + j * 3) * 4 + 1].x = drawingUVs.x + (i + 1) * uvWidthDivThree; tempUv[(i + j * 3) * 4 + 2].x = drawingUVs.x + (i + 1) * uvWidthDivThree; tempUv[(i + j * 3) * 4 + 3].x = drawingUVs.x + i * uvWidthDivThree; tempUv[(i + j * 3) * 4 + 0].y = drawingUVs.w - j * uvHeightDivThree; tempUv[(i + j * 3) * 4 + 1].y = drawingUVs.w - j * uvHeightDivThree; tempUv[(i + j * 3) * 4 + 2].y = drawingUVs.w - (j + 1) * uvHeightDivThree; tempUv[(i + j * 3) * 4 + 3].y = drawingUVs.w - (j + 1) * uvHeightDivThree; } } if (!invert) { tempPos[0] = tempPos[1]; tempUv[0] = tempUv[1]; tempPos[34] = tempPos[35]; tempUv[34] = tempUv[35]; } else { tempPos[9] = tempPos[8]; tempUv[9] = tempUv[8]; tempPos[27] = tempPos[26]; tempUv[27] = tempUv[26]; } for (int i = 0; i < 36; i++) { verts.Add(tempPos[i]); uvs.Add(tempUv[i]); cols.Add(c); } return; } // 增加圆形 // if (mFillDirection == FillDirection.Circle) { Vector3[] tempPos = new Vector3[36]; Vector2[] tempUv = new Vector2[36]; float widthDivThree = (drawingDimensions.z - drawingDimensions.x) / 3; float heightDivThree = (drawingDimensions.w - drawingDimensions.y) / 3; float uvWidthDivThree = (drawingUVs.z - drawingUVs.x) / 3; float uvHeightDivThree = (drawingUVs.w - drawingUVs.y) / 3; // column // for (int i = 0; i < 3; i++) { // row // for (int j = 0; j < 3; j++) { tempPos[(i + j * 3) * 4 + 0].x = drawingDimensions.x + i * widthDivThree; tempPos[(i + j * 3) * 4 + 1].x = drawingDimensions.x + (i + 1) * widthDivThree; tempPos[(i + j * 3) * 4 + 2].x = drawingDimensions.x + (i + 1) * widthDivThree; tempPos[(i + j * 3) * 4 + 3].x = drawingDimensions.x + i * widthDivThree; tempPos[(i + j * 3) * 4 + 0].y = drawingDimensions.w - j * heightDivThree; tempPos[(i + j * 3) * 4 + 1].y = drawingDimensions.w - j * heightDivThree; tempPos[(i + j * 3) * 4 + 2].y = drawingDimensions.w - (j + 1) * heightDivThree; tempPos[(i + j * 3) * 4 + 3].y = drawingDimensions.w - (j + 1) * heightDivThree; tempUv[(i + j * 3) * 4 + 0].x = drawingUVs.x + i * uvWidthDivThree; tempUv[(i + j * 3) * 4 + 1].x = drawingUVs.x + (i + 1) * uvWidthDivThree; tempUv[(i + j * 3) * 4 + 2].x = drawingUVs.x + (i + 1) * uvWidthDivThree; tempUv[(i + j * 3) * 4 + 3].x = drawingUVs.x + i * uvWidthDivThree; tempUv[(i + j * 3) * 4 + 0].y = drawingUVs.w - j * uvHeightDivThree; tempUv[(i + j * 3) * 4 + 1].y = drawingUVs.w - j * uvHeightDivThree; tempUv[(i + j * 3) * 4 + 2].y = drawingUVs.w - (j + 1) * uvHeightDivThree; tempUv[(i + j * 3) * 4 + 3].y = drawingUVs.w - (j + 1) * uvHeightDivThree; } } tempPos[0] = tempPos[1]; tempUv[0] = tempUv[1]; tempPos[34] = tempPos[35]; tempUv[34] = tempUv[35]; tempPos[9] = tempPos[8]; tempUv[9] = tempUv[8]; tempPos[27] = tempPos[26]; tempUv[27] = tempUv[26]; for (int i = 0; i < 36; i++) { verts.Add(tempPos[i]); uvs.Add(tempUv[i]); cols.Add(c); } return; } // Fill the buffer with the quad for the sprite for (int i = 0; i < 4; ++i) { verts.Add(mTempPos[i]); uvs.Add(mTempUVs[i]); cols.Add(c); } }
public unsafe static long $Invoke32(long instance, long *args) { return(GCHandledObjects.ObjectToGCHandle(NGUIMath.RepeatIndex(*(int *)args, *(int *)(args + 1)))); }
protected void FilledFill(BetterList <Vector3> verts, BetterList <Vector2> uvs, BetterList <Color32> cols) { if (this.mFillAmount < 0.001f) { return; } Color color = base.color; color.a = this.finalAlpha; Color32 item = (!this.atlas.premultipliedAlpha) ? color : NGUITools.ApplyPMA(color); Vector4 drawingDimensions = this.drawingDimensions; Vector4 drawingUVs = this.drawingUVs; if (this.mFillDirection == UISprite.FillDirection.Horizontal || this.mFillDirection == UISprite.FillDirection.Vertical) { if (this.mFillDirection == UISprite.FillDirection.Horizontal) { float num = (drawingUVs.z - drawingUVs.x) * this.mFillAmount; if (this.mInvert) { drawingDimensions.x = drawingDimensions.z - (drawingDimensions.z - drawingDimensions.x) * this.mFillAmount; drawingUVs.x = drawingUVs.z - num; } else { drawingDimensions.z = drawingDimensions.x + (drawingDimensions.z - drawingDimensions.x) * this.mFillAmount; drawingUVs.z = drawingUVs.x + num; } } else if (this.mFillDirection == UISprite.FillDirection.Vertical) { float num2 = (drawingUVs.w - drawingUVs.y) * this.mFillAmount; if (this.mInvert) { drawingDimensions.y = drawingDimensions.w - (drawingDimensions.w - drawingDimensions.y) * this.mFillAmount; drawingUVs.y = drawingUVs.w - num2; } else { drawingDimensions.w = drawingDimensions.y + (drawingDimensions.w - drawingDimensions.y) * this.mFillAmount; drawingUVs.w = drawingUVs.y + num2; } } } UISprite.mTempPos[0] = new Vector2(drawingDimensions.x, drawingDimensions.y); UISprite.mTempPos[1] = new Vector2(drawingDimensions.x, drawingDimensions.w); UISprite.mTempPos[2] = new Vector2(drawingDimensions.z, drawingDimensions.w); UISprite.mTempPos[3] = new Vector2(drawingDimensions.z, drawingDimensions.y); UISprite.mTempUVs[0] = new Vector2(drawingUVs.x, drawingUVs.y); UISprite.mTempUVs[1] = new Vector2(drawingUVs.x, drawingUVs.w); UISprite.mTempUVs[2] = new Vector2(drawingUVs.z, drawingUVs.w); UISprite.mTempUVs[3] = new Vector2(drawingUVs.z, drawingUVs.y); if (this.mFillAmount < 1f) { if (this.mFillDirection == UISprite.FillDirection.Radial90) { if (UISprite.RadialCut(UISprite.mTempPos, UISprite.mTempUVs, this.mFillAmount, this.mInvert, 0)) { for (int i = 0; i < 4; i++) { verts.Add(UISprite.mTempPos[i]); uvs.Add(UISprite.mTempUVs[i]); cols.Add(item); } } return; } if (this.mFillDirection == UISprite.FillDirection.Radial180) { for (int j = 0; j < 2; j++) { float t = 0f; float t2 = 1f; float t3; float t4; if (j == 0) { t3 = 0f; t4 = 0.5f; } else { t3 = 0.5f; t4 = 1f; } UISprite.mTempPos[0].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, t3); UISprite.mTempPos[1].x = UISprite.mTempPos[0].x; UISprite.mTempPos[2].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, t4); UISprite.mTempPos[3].x = UISprite.mTempPos[2].x; UISprite.mTempPos[0].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, t); UISprite.mTempPos[1].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, t2); UISprite.mTempPos[2].y = UISprite.mTempPos[1].y; UISprite.mTempPos[3].y = UISprite.mTempPos[0].y; UISprite.mTempUVs[0].x = Mathf.Lerp(drawingUVs.x, drawingUVs.z, t3); UISprite.mTempUVs[1].x = UISprite.mTempUVs[0].x; UISprite.mTempUVs[2].x = Mathf.Lerp(drawingUVs.x, drawingUVs.z, t4); UISprite.mTempUVs[3].x = UISprite.mTempUVs[2].x; UISprite.mTempUVs[0].y = Mathf.Lerp(drawingUVs.y, drawingUVs.w, t); UISprite.mTempUVs[1].y = Mathf.Lerp(drawingUVs.y, drawingUVs.w, t2); UISprite.mTempUVs[2].y = UISprite.mTempUVs[1].y; UISprite.mTempUVs[3].y = UISprite.mTempUVs[0].y; float value = this.mInvert ? (this.mFillAmount * 2f - (float)(1 - j)) : (this.fillAmount * 2f - (float)j); if (UISprite.RadialCut(UISprite.mTempPos, UISprite.mTempUVs, Mathf.Clamp01(value), !this.mInvert, NGUIMath.RepeatIndex(j + 3, 4))) { for (int k = 0; k < 4; k++) { verts.Add(UISprite.mTempPos[k]); uvs.Add(UISprite.mTempUVs[k]); cols.Add(item); } } } return; } if (this.mFillDirection == UISprite.FillDirection.Radial360) { for (int l = 0; l < 4; l++) { float t5; float t6; if (l < 2) { t5 = 0f; t6 = 0.5f; } else { t5 = 0.5f; t6 = 1f; } float t7; float t8; if (l == 0 || l == 3) { t7 = 0f; t8 = 0.5f; } else { t7 = 0.5f; t8 = 1f; } UISprite.mTempPos[0].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, t5); UISprite.mTempPos[1].x = UISprite.mTempPos[0].x; UISprite.mTempPos[2].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, t6); UISprite.mTempPos[3].x = UISprite.mTempPos[2].x; UISprite.mTempPos[0].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, t7); UISprite.mTempPos[1].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, t8); UISprite.mTempPos[2].y = UISprite.mTempPos[1].y; UISprite.mTempPos[3].y = UISprite.mTempPos[0].y; UISprite.mTempUVs[0].x = Mathf.Lerp(drawingUVs.x, drawingUVs.z, t5); UISprite.mTempUVs[1].x = UISprite.mTempUVs[0].x; UISprite.mTempUVs[2].x = Mathf.Lerp(drawingUVs.x, drawingUVs.z, t6); UISprite.mTempUVs[3].x = UISprite.mTempUVs[2].x; UISprite.mTempUVs[0].y = Mathf.Lerp(drawingUVs.y, drawingUVs.w, t7); UISprite.mTempUVs[1].y = Mathf.Lerp(drawingUVs.y, drawingUVs.w, t8); UISprite.mTempUVs[2].y = UISprite.mTempUVs[1].y; UISprite.mTempUVs[3].y = UISprite.mTempUVs[0].y; float value2 = (!this.mInvert) ? (this.mFillAmount * 4f - (float)(3 - NGUIMath.RepeatIndex(l + 2, 4))) : (this.mFillAmount * 4f - (float)NGUIMath.RepeatIndex(l + 2, 4)); if (UISprite.RadialCut(UISprite.mTempPos, UISprite.mTempUVs, Mathf.Clamp01(value2), this.mInvert, NGUIMath.RepeatIndex(l + 2, 4))) { for (int m = 0; m < 4; m++) { verts.Add(UISprite.mTempPos[m]); uvs.Add(UISprite.mTempUVs[m]); cols.Add(item); } } } return; } } for (int n = 0; n < 4; n++) { verts.Add(UISprite.mTempPos[n]); uvs.Add(UISprite.mTempUVs[n]); cols.Add(item); } }
/// <summary> /// Filled sprite fill function. /// </summary> protected void FilledFill(BetterList <Vector3> verts, BetterList <Vector2> uvs, BetterList <Color32> cols) { if (mFillAmount < 0.001f) { return; } Color colF = color; colF.a = finalAlpha; Color32 col = atlas.premultipliedAlpha ? NGUITools.ApplyPMA(colF) : colF; Vector4 v = drawingDimensions; float tx0 = mOuterUV.xMin; float ty0 = mOuterUV.yMin; float tx1 = mOuterUV.xMax; float ty1 = mOuterUV.yMax; // Horizontal and vertical filled sprites are simple -- just end the sprite prematurely if (mFillDirection == FillDirection.Horizontal || mFillDirection == FillDirection.Vertical) { if (mFillDirection == FillDirection.Horizontal) { float fill = (tx1 - tx0) * mFillAmount; if (mInvert) { v.x = v.z - (v.z - v.x) * mFillAmount; tx0 = tx1 - fill; } else { v.z = v.x + (v.z - v.x) * mFillAmount; tx1 = tx0 + fill; } } else if (mFillDirection == FillDirection.Vertical) { float fill = (ty1 - ty0) * mFillAmount; if (mInvert) { v.y = v.w - (v.w - v.y) * mFillAmount; ty0 = ty1 - fill; } else { v.w = v.y + (v.w - v.y) * mFillAmount; ty1 = ty0 + fill; } } } mTempPos[0] = new Vector2(v.x, v.y); mTempPos[1] = new Vector2(v.x, v.w); mTempPos[2] = new Vector2(v.z, v.w); mTempPos[3] = new Vector2(v.z, v.y); mTempUVs[0] = new Vector2(tx0, ty0); mTempUVs[1] = new Vector2(tx0, ty1); mTempUVs[2] = new Vector2(tx1, ty1); mTempUVs[3] = new Vector2(tx1, ty0); if (mFillAmount < 1f) { if (mFillDirection == FillDirection.Radial90) { if (RadialCut(mTempPos, mTempUVs, mFillAmount, mInvert, 0)) { for (int i = 0; i < 4; ++i) { verts.Add(mTempPos[i]); uvs.Add(mTempUVs[i]); cols.Add(col); } } return; } if (mFillDirection == FillDirection.Radial180) { for (int side = 0; side < 2; ++side) { float fx0, fx1, fy0, fy1; fy0 = 0f; fy1 = 1f; if (side == 0) { fx0 = 0f; fx1 = 0.5f; } else { fx0 = 0.5f; fx1 = 1f; } mTempPos[0].x = Mathf.Lerp(v.x, v.z, fx0); mTempPos[1].x = mTempPos[0].x; mTempPos[2].x = Mathf.Lerp(v.x, v.z, fx1); mTempPos[3].x = mTempPos[2].x; mTempPos[0].y = Mathf.Lerp(v.y, v.w, fy0); mTempPos[1].y = Mathf.Lerp(v.y, v.w, fy1); mTempPos[2].y = mTempPos[1].y; mTempPos[3].y = mTempPos[0].y; mTempUVs[0].x = Mathf.Lerp(tx0, tx1, fx0); mTempUVs[1].x = mTempUVs[0].x; mTempUVs[2].x = Mathf.Lerp(tx0, tx1, fx1); mTempUVs[3].x = mTempUVs[2].x; mTempUVs[0].y = Mathf.Lerp(ty0, ty1, fy0); mTempUVs[1].y = Mathf.Lerp(ty0, ty1, fy1); mTempUVs[2].y = mTempUVs[1].y; mTempUVs[3].y = mTempUVs[0].y; float val = !mInvert ? fillAmount * 2f - side : mFillAmount * 2f - (1 - side); if (RadialCut(mTempPos, mTempUVs, Mathf.Clamp01(val), !mInvert, NGUIMath.RepeatIndex(side + 3, 4))) { for (int i = 0; i < 4; ++i) { verts.Add(mTempPos[i]); uvs.Add(mTempUVs[i]); cols.Add(col); } } } return; } if (mFillDirection == FillDirection.Radial360) { for (int corner = 0; corner < 4; ++corner) { float fx0, fx1, fy0, fy1; if (corner < 2) { fx0 = 0f; fx1 = 0.5f; } else { fx0 = 0.5f; fx1 = 1f; } if (corner == 0 || corner == 3) { fy0 = 0f; fy1 = 0.5f; } else { fy0 = 0.5f; fy1 = 1f; } mTempPos[0].x = Mathf.Lerp(v.x, v.z, fx0); mTempPos[1].x = mTempPos[0].x; mTempPos[2].x = Mathf.Lerp(v.x, v.z, fx1); mTempPos[3].x = mTempPos[2].x; mTempPos[0].y = Mathf.Lerp(v.y, v.w, fy0); mTempPos[1].y = Mathf.Lerp(v.y, v.w, fy1); mTempPos[2].y = mTempPos[1].y; mTempPos[3].y = mTempPos[0].y; mTempUVs[0].x = Mathf.Lerp(tx0, tx1, fx0); mTempUVs[1].x = mTempUVs[0].x; mTempUVs[2].x = Mathf.Lerp(tx0, tx1, fx1); mTempUVs[3].x = mTempUVs[2].x; mTempUVs[0].y = Mathf.Lerp(ty0, ty1, fy0); mTempUVs[1].y = Mathf.Lerp(ty0, ty1, fy1); mTempUVs[2].y = mTempUVs[1].y; mTempUVs[3].y = mTempUVs[0].y; float val = mInvert ? mFillAmount * 4f - NGUIMath.RepeatIndex(corner + 2, 4) : mFillAmount * 4f - (3 - NGUIMath.RepeatIndex(corner + 2, 4)); if (RadialCut(mTempPos, mTempUVs, Mathf.Clamp01(val), mInvert, NGUIMath.RepeatIndex(corner + 2, 4))) { for (int i = 0; i < 4; ++i) { verts.Add(mTempPos[i]); uvs.Add(mTempUVs[i]); cols.Add(col); } } } return; } } // Fill the buffer with the quad for the sprite for (int i = 0; i < 4; ++i) { verts.Add(mTempPos[i]); uvs.Add(mTempUVs[i]); cols.Add(col); } }
// Token: 0x060004D6 RID: 1238 RVA: 0x0002DFA4 File Offset: 0x0002C1A4 protected void FilledFill(List <Vector3> verts, List <Vector2> uvs, List <Color> cols, ref Vector4 v, ref Vector4 u, ref Color c) { if (this.mFillAmount < 0.001f) { return; } if (this.mFillDirection == UIBasicSprite.FillDirection.Horizontal || this.mFillDirection == UIBasicSprite.FillDirection.Vertical) { if (this.mFillDirection == UIBasicSprite.FillDirection.Horizontal) { float num = (u.z - u.x) * this.mFillAmount; if (this.mInvert) { v.x = v.z - (v.z - v.x) * this.mFillAmount; u.x = u.z - num; } else { v.z = v.x + (v.z - v.x) * this.mFillAmount; u.z = u.x + num; } } else if (this.mFillDirection == UIBasicSprite.FillDirection.Vertical) { float num2 = (u.w - u.y) * this.mFillAmount; if (this.mInvert) { v.y = v.w - (v.w - v.y) * this.mFillAmount; u.y = u.w - num2; } else { v.w = v.y + (v.w - v.y) * this.mFillAmount; u.w = u.y + num2; } } } UIBasicSprite.mTempPos[0] = new Vector2(v.x, v.y); UIBasicSprite.mTempPos[1] = new Vector2(v.x, v.w); UIBasicSprite.mTempPos[2] = new Vector2(v.z, v.w); UIBasicSprite.mTempPos[3] = new Vector2(v.z, v.y); UIBasicSprite.mTempUVs[0] = new Vector2(u.x, u.y); UIBasicSprite.mTempUVs[1] = new Vector2(u.x, u.w); UIBasicSprite.mTempUVs[2] = new Vector2(u.z, u.w); UIBasicSprite.mTempUVs[3] = new Vector2(u.z, u.y); if (this.mFillAmount < 1f) { if (this.mFillDirection == UIBasicSprite.FillDirection.Radial90) { if (UIBasicSprite.RadialCut(UIBasicSprite.mTempPos, UIBasicSprite.mTempUVs, this.mFillAmount, this.mInvert, 0)) { for (int i = 0; i < 4; i++) { verts.Add(UIBasicSprite.mTempPos[i]); uvs.Add(UIBasicSprite.mTempUVs[i]); cols.Add(c); } } return; } if (this.mFillDirection == UIBasicSprite.FillDirection.Radial180) { for (int j = 0; j < 2; j++) { float t = 0f; float t2 = 1f; float t3; float t4; if (j == 0) { t3 = 0f; t4 = 0.5f; } else { t3 = 0.5f; t4 = 1f; } UIBasicSprite.mTempPos[0].x = Mathf.Lerp(v.x, v.z, t3); UIBasicSprite.mTempPos[1].x = UIBasicSprite.mTempPos[0].x; UIBasicSprite.mTempPos[2].x = Mathf.Lerp(v.x, v.z, t4); UIBasicSprite.mTempPos[3].x = UIBasicSprite.mTempPos[2].x; UIBasicSprite.mTempPos[0].y = Mathf.Lerp(v.y, v.w, t); UIBasicSprite.mTempPos[1].y = Mathf.Lerp(v.y, v.w, t2); UIBasicSprite.mTempPos[2].y = UIBasicSprite.mTempPos[1].y; UIBasicSprite.mTempPos[3].y = UIBasicSprite.mTempPos[0].y; UIBasicSprite.mTempUVs[0].x = Mathf.Lerp(u.x, u.z, t3); UIBasicSprite.mTempUVs[1].x = UIBasicSprite.mTempUVs[0].x; UIBasicSprite.mTempUVs[2].x = Mathf.Lerp(u.x, u.z, t4); UIBasicSprite.mTempUVs[3].x = UIBasicSprite.mTempUVs[2].x; UIBasicSprite.mTempUVs[0].y = Mathf.Lerp(u.y, u.w, t); UIBasicSprite.mTempUVs[1].y = Mathf.Lerp(u.y, u.w, t2); UIBasicSprite.mTempUVs[2].y = UIBasicSprite.mTempUVs[1].y; UIBasicSprite.mTempUVs[3].y = UIBasicSprite.mTempUVs[0].y; float value = (!this.mInvert) ? (this.fillAmount * 2f - (float)j) : (this.mFillAmount * 2f - (float)(1 - j)); if (UIBasicSprite.RadialCut(UIBasicSprite.mTempPos, UIBasicSprite.mTempUVs, Mathf.Clamp01(value), !this.mInvert, NGUIMath.RepeatIndex(j + 3, 4))) { for (int k = 0; k < 4; k++) { verts.Add(UIBasicSprite.mTempPos[k]); uvs.Add(UIBasicSprite.mTempUVs[k]); cols.Add(c); } } } return; } if (this.mFillDirection == UIBasicSprite.FillDirection.Radial360) { for (int l = 0; l < 4; l++) { float t5; float t6; if (l < 2) { t5 = 0f; t6 = 0.5f; } else { t5 = 0.5f; t6 = 1f; } float t7; float t8; if (l == 0 || l == 3) { t7 = 0f; t8 = 0.5f; } else { t7 = 0.5f; t8 = 1f; } UIBasicSprite.mTempPos[0].x = Mathf.Lerp(v.x, v.z, t5); UIBasicSprite.mTempPos[1].x = UIBasicSprite.mTempPos[0].x; UIBasicSprite.mTempPos[2].x = Mathf.Lerp(v.x, v.z, t6); UIBasicSprite.mTempPos[3].x = UIBasicSprite.mTempPos[2].x; UIBasicSprite.mTempPos[0].y = Mathf.Lerp(v.y, v.w, t7); UIBasicSprite.mTempPos[1].y = Mathf.Lerp(v.y, v.w, t8); UIBasicSprite.mTempPos[2].y = UIBasicSprite.mTempPos[1].y; UIBasicSprite.mTempPos[3].y = UIBasicSprite.mTempPos[0].y; UIBasicSprite.mTempUVs[0].x = Mathf.Lerp(u.x, u.z, t5); UIBasicSprite.mTempUVs[1].x = UIBasicSprite.mTempUVs[0].x; UIBasicSprite.mTempUVs[2].x = Mathf.Lerp(u.x, u.z, t6); UIBasicSprite.mTempUVs[3].x = UIBasicSprite.mTempUVs[2].x; UIBasicSprite.mTempUVs[0].y = Mathf.Lerp(u.y, u.w, t7); UIBasicSprite.mTempUVs[1].y = Mathf.Lerp(u.y, u.w, t8); UIBasicSprite.mTempUVs[2].y = UIBasicSprite.mTempUVs[1].y; UIBasicSprite.mTempUVs[3].y = UIBasicSprite.mTempUVs[0].y; float value2 = this.mInvert ? (this.mFillAmount * 4f - (float)NGUIMath.RepeatIndex(l + 2, 4)) : (this.mFillAmount * 4f - (float)(3 - NGUIMath.RepeatIndex(l + 2, 4))); if (UIBasicSprite.RadialCut(UIBasicSprite.mTempPos, UIBasicSprite.mTempUVs, Mathf.Clamp01(value2), this.mInvert, NGUIMath.RepeatIndex(l + 2, 4))) { for (int m = 0; m < 4; m++) { verts.Add(UIBasicSprite.mTempPos[m]); uvs.Add(UIBasicSprite.mTempUVs[m]); cols.Add(c); } } } return; } } for (int n = 0; n < 4; n++) { verts.Add(UIBasicSprite.mTempPos[n]); uvs.Add(UIBasicSprite.mTempUVs[n]); cols.Add(c); } }
private void FilledFill(BetterList <Vector3> verts, BetterList <Vector2> uvs, BetterList <Color32> cols) { if (!(mFillAmount < 0.001f)) { Vector4 drawingDimensions = this.drawingDimensions; Vector4 drawingUVs = this.drawingUVs; Color32 drawingColor = this.drawingColor; if (mFillDirection == FillDirection.Horizontal || mFillDirection == FillDirection.Vertical) { if (mFillDirection == FillDirection.Horizontal) { float num = (drawingUVs.z - drawingUVs.x) * mFillAmount; if (mInvert) { drawingDimensions.x = drawingDimensions.z - (drawingDimensions.z - drawingDimensions.x) * mFillAmount; drawingUVs.x = drawingUVs.z - num; } else { drawingDimensions.z = drawingDimensions.x + (drawingDimensions.z - drawingDimensions.x) * mFillAmount; drawingUVs.z = drawingUVs.x + num; } } else if (mFillDirection == FillDirection.Vertical) { float num2 = (drawingUVs.w - drawingUVs.y) * mFillAmount; if (mInvert) { drawingDimensions.y = drawingDimensions.w - (drawingDimensions.w - drawingDimensions.y) * mFillAmount; drawingUVs.y = drawingUVs.w - num2; } else { drawingDimensions.w = drawingDimensions.y + (drawingDimensions.w - drawingDimensions.y) * mFillAmount; drawingUVs.w = drawingUVs.y + num2; } } } mTempPos[0] = new Vector2(drawingDimensions.x, drawingDimensions.y); mTempPos[1] = new Vector2(drawingDimensions.x, drawingDimensions.w); mTempPos[2] = new Vector2(drawingDimensions.z, drawingDimensions.w); mTempPos[3] = new Vector2(drawingDimensions.z, drawingDimensions.y); mTempUVs[0] = new Vector2(drawingUVs.x, drawingUVs.y); mTempUVs[1] = new Vector2(drawingUVs.x, drawingUVs.w); mTempUVs[2] = new Vector2(drawingUVs.z, drawingUVs.w); mTempUVs[3] = new Vector2(drawingUVs.z, drawingUVs.y); if (mFillAmount < 1f) { if (mFillDirection == FillDirection.Radial90) { if (RadialCut(mTempPos, mTempUVs, mFillAmount, mInvert, 0)) { for (int i = 0; i < 4; i++) { verts.Add(mTempPos[i]); uvs.Add(mTempUVs[i]); cols.Add(drawingColor); } } return; } if (mFillDirection == FillDirection.Radial180) { for (int j = 0; j < 2; j++) { float t = 0f; float t2 = 1f; float t3; float t4; if (j == 0) { t3 = 0f; t4 = 0.5f; } else { t3 = 0.5f; t4 = 1f; } mTempPos[0].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, t3); mTempPos[1].x = mTempPos[0].x; mTempPos[2].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, t4); mTempPos[3].x = mTempPos[2].x; mTempPos[0].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, t); mTempPos[1].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, t2); mTempPos[2].y = mTempPos[1].y; mTempPos[3].y = mTempPos[0].y; mTempUVs[0].x = Mathf.Lerp(drawingUVs.x, drawingUVs.z, t3); mTempUVs[1].x = mTempUVs[0].x; mTempUVs[2].x = Mathf.Lerp(drawingUVs.x, drawingUVs.z, t4); mTempUVs[3].x = mTempUVs[2].x; mTempUVs[0].y = Mathf.Lerp(drawingUVs.y, drawingUVs.w, t); mTempUVs[1].y = Mathf.Lerp(drawingUVs.y, drawingUVs.w, t2); mTempUVs[2].y = mTempUVs[1].y; mTempUVs[3].y = mTempUVs[0].y; float value = mInvert ? (mFillAmount * 2f - (float)(1 - j)) : (fillAmount * 2f - (float)j); if (RadialCut(mTempPos, mTempUVs, Mathf.Clamp01(value), !mInvert, NGUIMath.RepeatIndex(j + 3, 4))) { for (int k = 0; k < 4; k++) { verts.Add(mTempPos[k]); uvs.Add(mTempUVs[k]); cols.Add(drawingColor); } } } return; } if (mFillDirection == FillDirection.Radial360) { for (int l = 0; l < 4; l++) { float t5; float t6; if (l < 2) { t5 = 0f; t6 = 0.5f; } else { t5 = 0.5f; t6 = 1f; } float t7; float t8; if (l == 0 || l == 3) { t7 = 0f; t8 = 0.5f; } else { t7 = 0.5f; t8 = 1f; } mTempPos[0].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, t5); mTempPos[1].x = mTempPos[0].x; mTempPos[2].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, t6); mTempPos[3].x = mTempPos[2].x; mTempPos[0].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, t7); mTempPos[1].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, t8); mTempPos[2].y = mTempPos[1].y; mTempPos[3].y = mTempPos[0].y; mTempUVs[0].x = Mathf.Lerp(drawingUVs.x, drawingUVs.z, t5); mTempUVs[1].x = mTempUVs[0].x; mTempUVs[2].x = Mathf.Lerp(drawingUVs.x, drawingUVs.z, t6); mTempUVs[3].x = mTempUVs[2].x; mTempUVs[0].y = Mathf.Lerp(drawingUVs.y, drawingUVs.w, t7); mTempUVs[1].y = Mathf.Lerp(drawingUVs.y, drawingUVs.w, t8); mTempUVs[2].y = mTempUVs[1].y; mTempUVs[3].y = mTempUVs[0].y; float value2 = (!mInvert) ? (mFillAmount * 4f - (float)(3 - NGUIMath.RepeatIndex(l + 2, 4))) : (mFillAmount * 4f - (float)NGUIMath.RepeatIndex(l + 2, 4)); if (RadialCut(mTempPos, mTempUVs, Mathf.Clamp01(value2), mInvert, NGUIMath.RepeatIndex(l + 2, 4))) { for (int m = 0; m < 4; m++) { verts.Add(mTempPos[m]); uvs.Add(mTempUVs[m]); cols.Add(drawingColor); } } } return; } } for (int n = 0; n < 4; n++) { verts.Add(mTempPos[n]); uvs.Add(mTempUVs[n]); cols.Add(drawingColor); } } }
/// <summary> /// 画圈 /// </summary> bool DrawCircle(BetterList <Vector3> verts, BetterList <Vector2> uvs, BetterList <Color32> cols, Vector2[] tempPos, Vector2[] tempUV, float angle, int idx, Color color) { Vector4 v = drawingDimensions; Vector4 u = drawingUVs; // Color32 c = drawingColor; for (int corner = 0; corner < 4; ++corner) { float fx0, fx1, fy0, fy1; if (corner < 2) { fx0 = 0f; fx1 = 0.5f; } else { fx0 = 0.5f; fx1 = 1f; } if (corner == 0 || corner == 3) { fy0 = 0f; fy1 = 0.5f; } else { fy0 = 0.5f; fy1 = 1f; } tempPos[0].x = Mathf.Lerp(v.x, v.z, fx0); tempPos[1].x = tempPos[0].x; tempPos[2].x = Mathf.Lerp(v.x, v.z, fx1); tempPos[3].x = tempPos[2].x; tempPos[0].y = Mathf.Lerp(v.y, v.w, fy0); tempPos[1].y = Mathf.Lerp(v.y, v.w, fy1); tempPos[2].y = tempPos[1].y; tempPos[3].y = tempPos[0].y; tempUV[0].x = Mathf.Lerp(u.x, u.z, fx0); tempUV[1].x = tempUV[0].x; tempUV[2].x = Mathf.Lerp(u.x, u.z, fx1); tempUV[3].x = tempUV[2].x; tempUV[0].y = Mathf.Lerp(u.y, u.w, fy0); tempUV[1].y = Mathf.Lerp(u.y, u.w, fy1); tempUV[2].y = tempUV[1].y; tempUV[3].y = tempUV[0].y; float val = angle; bool invert = true; if (idx != 0) { invert = !invert; val = invert ? (angle) * 4f - NGUIMath.RepeatIndex(corner + 2, 4) : (angle) * 4f - (3 - NGUIMath.RepeatIndex(corner + 2, 4)); } else { val = corner == 1 || corner == 2 ? angle * 2f : angle * 2f - 1f; } if (RadialCut( tempPos, tempUV, Mathf.Clamp01(val), idx == 0 ? corner > 1 : invert, NGUIMath.RepeatIndex(corner + 2, 4))) { for (int j = 0; j < 4; ++j) { verts.Add(tempPos[j]); uvs.Add(tempUV[j]); cols.Add(color); } } } return(true); }
private static void RadialCut(Vector2[] xy, float cos, float sin, bool invert, int corner) { int num = NGUIMath.RepeatIndex(corner + 1, 4); int num2 = NGUIMath.RepeatIndex(corner + 2, 4); int num3 = NGUIMath.RepeatIndex(corner + 3, 4); if ((corner & 1) == 1) { if (sin > cos) { cos /= sin; sin = 1f; if (invert) { xy[num].x = Mathf.Lerp(xy[corner].x, xy[num2].x, cos); xy[num2].x = xy[num].x; } } else if (cos > sin) { sin /= cos; cos = 1f; if (!invert) { xy[num2].y = Mathf.Lerp(xy[corner].y, xy[num2].y, sin); xy[num3].y = xy[num2].y; } } else { cos = 1f; sin = 1f; } if (!invert) { xy[num3].x = Mathf.Lerp(xy[corner].x, xy[num2].x, cos); } else { xy[num].y = Mathf.Lerp(xy[corner].y, xy[num2].y, sin); } } else { if (cos > sin) { sin /= cos; cos = 1f; if (!invert) { xy[num].y = Mathf.Lerp(xy[corner].y, xy[num2].y, sin); xy[num2].y = xy[num].y; } } else if (sin > cos) { cos /= sin; sin = 1f; if (invert) { xy[num2].x = Mathf.Lerp(xy[corner].x, xy[num2].x, cos); xy[num3].x = xy[num2].x; } } else { cos = 1f; sin = 1f; } if (invert) { xy[num3].y = Mathf.Lerp(xy[corner].y, xy[num2].y, sin); } else { xy[num].x = Mathf.Lerp(xy[corner].x, xy[num2].x, cos); } } }
private void FilledFill(BetterList <Vector3> verts, BetterList <Vector2> uvs, BetterList <Color32> cols) { //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_0019: Unknown result type (might be due to invalid IL or missing references) //IL_001e: Unknown result type (might be due to invalid IL or missing references) //IL_0020: Unknown result type (might be due to invalid IL or missing references) //IL_0025: Unknown result type (might be due to invalid IL or missing references) //IL_0197: Unknown result type (might be due to invalid IL or missing references) //IL_019c: Unknown result type (might be due to invalid IL or missing references) //IL_01ba: Unknown result type (might be due to invalid IL or missing references) //IL_01bf: Unknown result type (might be due to invalid IL or missing references) //IL_01dd: Unknown result type (might be due to invalid IL or missing references) //IL_01e2: Unknown result type (might be due to invalid IL or missing references) //IL_0200: Unknown result type (might be due to invalid IL or missing references) //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_0223: Unknown result type (might be due to invalid IL or missing references) //IL_0228: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0269: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_028c: Unknown result type (might be due to invalid IL or missing references) //IL_0291: Unknown result type (might be due to invalid IL or missing references) //IL_02e8: Unknown result type (might be due to invalid IL or missing references) //IL_02ed: Unknown result type (might be due to invalid IL or missing references) //IL_0304: Unknown result type (might be due to invalid IL or missing references) //IL_030f: Unknown result type (might be due to invalid IL or missing references) //IL_060d: Unknown result type (might be due to invalid IL or missing references) //IL_0612: Unknown result type (might be due to invalid IL or missing references) //IL_0629: Unknown result type (might be due to invalid IL or missing references) //IL_0634: Unknown result type (might be due to invalid IL or missing references) //IL_0970: Unknown result type (might be due to invalid IL or missing references) //IL_0975: Unknown result type (might be due to invalid IL or missing references) //IL_098c: Unknown result type (might be due to invalid IL or missing references) //IL_0997: Unknown result type (might be due to invalid IL or missing references) //IL_09cf: Unknown result type (might be due to invalid IL or missing references) //IL_09d4: Unknown result type (might be due to invalid IL or missing references) //IL_09eb: Unknown result type (might be due to invalid IL or missing references) //IL_09f6: Unknown result type (might be due to invalid IL or missing references) if (!(mFillAmount < 0.001f)) { Vector4 drawingDimensions = this.drawingDimensions; Vector4 drawingUVs = this.drawingUVs; Color32 drawingColor = this.drawingColor; if (mFillDirection == FillDirection.Horizontal || mFillDirection == FillDirection.Vertical) { if (mFillDirection == FillDirection.Horizontal) { float num = (drawingUVs.z - drawingUVs.x) * mFillAmount; if (mInvert) { drawingDimensions.x = drawingDimensions.z - (drawingDimensions.z - drawingDimensions.x) * mFillAmount; drawingUVs.x = drawingUVs.z - num; } else { drawingDimensions.z = drawingDimensions.x + (drawingDimensions.z - drawingDimensions.x) * mFillAmount; drawingUVs.z = drawingUVs.x + num; } } else if (mFillDirection == FillDirection.Vertical) { float num2 = (drawingUVs.w - drawingUVs.y) * mFillAmount; if (mInvert) { drawingDimensions.y = drawingDimensions.w - (drawingDimensions.w - drawingDimensions.y) * mFillAmount; drawingUVs.y = drawingUVs.w - num2; } else { drawingDimensions.w = drawingDimensions.y + (drawingDimensions.w - drawingDimensions.y) * mFillAmount; drawingUVs.w = drawingUVs.y + num2; } } } mTempPos[0] = new Vector2(drawingDimensions.x, drawingDimensions.y); mTempPos[1] = new Vector2(drawingDimensions.x, drawingDimensions.w); mTempPos[2] = new Vector2(drawingDimensions.z, drawingDimensions.w); mTempPos[3] = new Vector2(drawingDimensions.z, drawingDimensions.y); mTempUVs[0] = new Vector2(drawingUVs.x, drawingUVs.y); mTempUVs[1] = new Vector2(drawingUVs.x, drawingUVs.w); mTempUVs[2] = new Vector2(drawingUVs.z, drawingUVs.w); mTempUVs[3] = new Vector2(drawingUVs.z, drawingUVs.y); if (mFillAmount < 1f) { if (mFillDirection == FillDirection.Radial90) { if (RadialCut(mTempPos, mTempUVs, mFillAmount, mInvert, 0)) { for (int i = 0; i < 4; i++) { verts.Add(Vector2.op_Implicit(mTempPos[i])); uvs.Add(mTempUVs[i]); cols.Add(drawingColor); } } return; } if (mFillDirection == FillDirection.Radial180) { for (int j = 0; j < 2; j++) { float num3 = 0f; float num4 = 1f; float num5; float num6; if (j == 0) { num5 = 0f; num6 = 0.5f; } else { num5 = 0.5f; num6 = 1f; } mTempPos[0].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, num5); mTempPos[1].x = mTempPos[0].x; mTempPos[2].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, num6); mTempPos[3].x = mTempPos[2].x; mTempPos[0].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, num3); mTempPos[1].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, num4); mTempPos[2].y = mTempPos[1].y; mTempPos[3].y = mTempPos[0].y; mTempUVs[0].x = Mathf.Lerp(drawingUVs.x, drawingUVs.z, num5); mTempUVs[1].x = mTempUVs[0].x; mTempUVs[2].x = Mathf.Lerp(drawingUVs.x, drawingUVs.z, num6); mTempUVs[3].x = mTempUVs[2].x; mTempUVs[0].y = Mathf.Lerp(drawingUVs.y, drawingUVs.w, num3); mTempUVs[1].y = Mathf.Lerp(drawingUVs.y, drawingUVs.w, num4); mTempUVs[2].y = mTempUVs[1].y; mTempUVs[3].y = mTempUVs[0].y; float num7 = mInvert ? (mFillAmount * 2f - (float)(1 - j)) : (fillAmount * 2f - (float)j); if (RadialCut(mTempPos, mTempUVs, Mathf.Clamp01(num7), !mInvert, NGUIMath.RepeatIndex(j + 3, 4))) { for (int k = 0; k < 4; k++) { verts.Add(Vector2.op_Implicit(mTempPos[k])); uvs.Add(mTempUVs[k]); cols.Add(drawingColor); } } } return; } if (mFillDirection == FillDirection.Radial360) { for (int l = 0; l < 4; l++) { float num8; float num9; if (l < 2) { num8 = 0f; num9 = 0.5f; } else { num8 = 0.5f; num9 = 1f; } float num10; float num11; if (l == 0 || l == 3) { num10 = 0f; num11 = 0.5f; } else { num10 = 0.5f; num11 = 1f; } mTempPos[0].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, num8); mTempPos[1].x = mTempPos[0].x; mTempPos[2].x = Mathf.Lerp(drawingDimensions.x, drawingDimensions.z, num9); mTempPos[3].x = mTempPos[2].x; mTempPos[0].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, num10); mTempPos[1].y = Mathf.Lerp(drawingDimensions.y, drawingDimensions.w, num11); mTempPos[2].y = mTempPos[1].y; mTempPos[3].y = mTempPos[0].y; mTempUVs[0].x = Mathf.Lerp(drawingUVs.x, drawingUVs.z, num8); mTempUVs[1].x = mTempUVs[0].x; mTempUVs[2].x = Mathf.Lerp(drawingUVs.x, drawingUVs.z, num9); mTempUVs[3].x = mTempUVs[2].x; mTempUVs[0].y = Mathf.Lerp(drawingUVs.y, drawingUVs.w, num10); mTempUVs[1].y = Mathf.Lerp(drawingUVs.y, drawingUVs.w, num11); mTempUVs[2].y = mTempUVs[1].y; mTempUVs[3].y = mTempUVs[0].y; float num12 = (!mInvert) ? (mFillAmount * 4f - (float)(3 - NGUIMath.RepeatIndex(l + 2, 4))) : (mFillAmount * 4f - (float)NGUIMath.RepeatIndex(l + 2, 4)); if (RadialCut(mTempPos, mTempUVs, Mathf.Clamp01(num12), mInvert, NGUIMath.RepeatIndex(l + 2, 4))) { for (int m = 0; m < 4; m++) { verts.Add(Vector2.op_Implicit(mTempPos[m])); uvs.Add(mTempUVs[m]); cols.Add(drawingColor); } } } return; } } for (int n = 0; n < 4; n++) { verts.Add(Vector2.op_Implicit(mTempPos[n])); uvs.Add(mTempUVs[n]); cols.Add(drawingColor); } } }