6using System.Collections;
7using System.Collections.Generic;
18 private float lerpSpeed = 12;
20 private float cornerSize = 64;
28 [Tooltip(
"Positions and sizes card to its current transform.")]
36 [Tooltip(
"Positions and sizes the page to the top third of the screen.")]
44 private int animationActive = 0;
46 private Vector2[] nextCornerPos =
new Vector2[4];
47 private Vector2[] nextEdgePos =
new Vector2[4];
48 private Vector2[] nextEdgeScale =
new Vector2[4];
49 private Vector2 nextCenterScale;
50 private Vector2 nextPos;
51 private int nextSuperness;
53 private RectTransform rect;
54 private Vector2 nextMin;
55 private Vector2 nextMax;
67 pageSize =
new Vector2(Screen.width, Screen.height / 3);
71 rect = GetComponent<RectTransform>();
76 if (animationActive == 1 || animationActive == -1)
81 cardCorners[i].localPosition = Vector3.Lerp(
cardCorners[i].localPosition, nextCornerPos[i], Time.deltaTime * lerpSpeed);
89 cardEdges[i].localPosition = nextEdgePos[i];
90 cardEdges[i].localScale =
new Vector3(nextEdgeScale[i].x, nextEdgeScale[i].y, 1);
91 transform.localPosition = nextPos;
92 cardCenter.localScale =
new Vector3(nextCenterScale.x, nextCenterScale.y, 1);
94 rect.offsetMin = nextMin;
95 rect.offsetMax = nextMax;
100 for (
int i = 0; i <
cardEdges.Length; i++)
102 cardEdges[i].localPosition = Vector3.Lerp(
cardEdges[i].localPosition, nextEdgePos[i], Time.deltaTime * lerpSpeed);
103 cardEdges[i].localScale = Vector3.Lerp(
cardEdges[i].localScale,
new Vector3(nextEdgeScale[i].x, nextEdgeScale[i].y, 1), Time.deltaTime * lerpSpeed);
107 transform.localPosition = Vector3.Lerp(transform.localPosition, nextPos, Time.deltaTime * lerpSpeed);
108 cardCenter.localScale = Vector3.Lerp(
cardCenter.localScale,
new Vector3(nextCenterScale.x, nextCenterScale.y, 1), Time.deltaTime * lerpSpeed);
111 rect.offsetMin = Vector3.Lerp(rect.offsetMin, nextMin, Time.deltaTime * lerpSpeed);
112 rect.offsetMax = Vector3.Lerp(rect.offsetMax, nextMax, Time.deltaTime * lerpSpeed);
118 if (animationActive != 1 || animationActive == 0)
128 nextCornerPos[i] =
new Vector2(posX, posY);
132 for (
int i = 0; i <
cardEdges.Length; i++)
146 scaleY =
pageSize.y - cornerSize * 2;
148 else if (
cardEdges[i].localPosition.y != 0)
153 scaleX =
pageSize.x - cornerSize * 2;
157 nextEdgePos[i] =
new Vector2(posX, posY);
158 nextEdgeScale[i] =
new Vector2(scaleX, scaleY);
161 nextCenterScale =
pageSize -
new Vector2(cornerSize * 2, cornerSize * 2);
169 else if (animationActive != -1)
171 animationActive = -1;
179 nextCornerPos[i] =
new Vector2(posX, posY);
183 for (
int i = 0; i <
cardEdges.Length; i++)
197 scaleY =
cardSize.y - cornerSize * 2;
199 else if (
cardEdges[i].localPosition.y != 0)
204 scaleX =
cardSize.x - cornerSize * 2;
208 nextEdgePos[i] =
new Vector2(posX, posY);
209 nextEdgeScale[i] =
new Vector2(scaleX, scaleY);
212 nextCenterScale =
cardSize -
new Vector2(cornerSize * 2, cornerSize * 2);
RectTransform[] cardEdges
RectTransform[] cardCorners
Credit Erdener Gonenc - @PixelEnvision.