6using System.Collections;
7using System.Collections.Generic;
17 private float lerpSpeed = 8f;
20 private RectTransform buttonRect =
null;
21 private Vector2 closeButtonMin = Vector2.zero;
22 private Vector2 closeButtonMax = Vector2.zero;
25 private Vector2 cardSize = Vector2.zero;
27 private Vector2 pageSize = Vector2.zero;
29 private Vector2 cardCenter = Vector2.zero;
30 private Vector2 pageCenter = Vector2.zero;
32 private Vector2 cardMin = Vector2.zero;
33 private Vector2 cardMax = Vector2.zero;
34 private Vector2 pageMin = Vector2.zero;
35 private Vector2 pageMax = Vector2.zero;
37 private RectTransform rectTrans;
39 private int animationActive = -1;
43 rectTrans = GetComponent<RectTransform>();
46 buttonRect.GetComponent<
Image>().color =
new Color32(228, 0, 0, 0);
48 closeButtonMin =
new Vector2(pageMin.x + pageSize.x - 64, pageMin.y + pageSize.y - 64);
49 closeButtonMax =
new Vector2(pageMax.x - 16, pageMax.y - 16);
52 cardMin =
new Vector2(cardCenter.x - cardSize.x * 0.5f, cardCenter.y - cardSize.y * 0.5f);
53 cardMax =
new Vector2(cardCenter.x + cardSize.x * 0.5f, cardCenter.y + cardSize.y * 0.5f);
55 pageMin =
new Vector2(pageCenter.x - pageSize.x * 0.5f, pageCenter.y - pageSize.y * 0.5f);
56 pageMax =
new Vector2(pageCenter.x + pageSize.x * 0.5f, pageCenter.y + pageSize.y * 0.5f);
62 if (animationActive == 1)
64 rectTrans.offsetMin = Vector2.Lerp(rectTrans.offsetMin, pageMin, Time.deltaTime * lerpSpeed);
65 rectTrans.offsetMax = Vector2.Lerp(rectTrans.offsetMax, pageMax, Time.deltaTime * lerpSpeed);
67 if (rectTrans.offsetMin.x < pageMin.x * 0.995f && rectTrans.offsetMin.y < pageMin.y * 0.995f && rectTrans.offsetMax.x > pageMax.x * 0.995f && rectTrans.offsetMax.y > pageMax.y * 0.995f)
69 rectTrans.offsetMin = pageMin;
70 rectTrans.offsetMax = pageMax;
73 buttonRect.GetComponent<
Image>().color = Color32.Lerp(buttonRect.GetComponent<
Image>().color,
new Color32(228, 0, 0, 191), Time.deltaTime * lerpSpeed);
75 if (Mathf.Abs(buttonRect.GetComponent<
Image>().color.a - 191) < 2)
77 buttonRect.GetComponent<
Image>().color =
new Color32(228, 0, 0, 191);
85 else if (animationActive == -1)
87 buttonRect.GetComponent<
Image>().color = Color32.Lerp(buttonRect.GetComponent<
Image>().color,
new Color32(228, 0, 0, 0), Time.deltaTime * lerpSpeed * 1.25f);
89 rectTrans.offsetMin = Vector2.Lerp(rectTrans.offsetMin, cardMin, Time.deltaTime * lerpSpeed);
90 rectTrans.offsetMax = Vector2.Lerp(rectTrans.offsetMax, cardMax, Time.deltaTime * lerpSpeed);
92 if (rectTrans.offsetMin.x > cardMin.x * 1.005f && rectTrans.offsetMin.y > cardMin.y * 1.005f && rectTrans.offsetMax.x < cardMax.x * 1.005f && rectTrans.offsetMax.y < cardMax.y * 1.005f)
94 rectTrans.offsetMin = cardMin;
95 rectTrans.offsetMax = cardMax;
98 buttonRect.offsetMin = Vector2.zero;
99 buttonRect.offsetMax = Vector2.zero;
110 if (animationActive != 1)
113 cardCenter = transform.localPosition;
116 buttonRect.offsetMin = closeButtonMin;
117 buttonRect.offsetMax = closeButtonMax;
119 else if (animationActive != -1)
121 animationActive = -1;
System.Drawing.Image Image
static bool canUseHorizontalAxis
Credit Erdener Gonenc - @PixelEnvision.