6 [ExecuteInEditMode, RequireComponent(typeof(
Image))]
7 [AddComponentMenu(
"UI/Effects/Extensions/Shining Effect")]
12 [SerializeField, HideInInspector]
13 GameObject effectRoot;
32 RectTransform effectorRect;
37 GameObject effectorobj =
new GameObject(
"effector");
39 effectRoot =
new GameObject(
"ShineEffect");
40 effectRoot.transform.SetParent(this.transform);
41 effectRoot.AddComponent<
Image>().sprite = gameObject.GetComponent<
Image>().sprite;
42 effectRoot.GetComponent<
Image>().type = gameObject.GetComponent<
Image>().type;
43 effectRoot.AddComponent<Mask>().showMaskGraphic =
false;
44 effectRoot.transform.localScale = Vector3.one;
45 effectRoot.GetComponent<RectTransform>().anchoredPosition3D = Vector3.zero;
46 effectRoot.GetComponent<RectTransform>().anchorMax = Vector2.one;
47 effectRoot.GetComponent<RectTransform>().anchorMin = Vector2.zero;
48 effectRoot.GetComponent<RectTransform>().offsetMax = Vector2.zero;
49 effectRoot.GetComponent<RectTransform>().offsetMin = Vector2.zero;
50 effectRoot.transform.SetAsFirstSibling();
52 effectorobj.AddComponent<RectTransform>();
53 effectorobj.transform.SetParent(effectRoot.transform);
54 effectorRect = effectorobj.GetComponent<RectTransform>();
55 effectorRect.localScale = Vector3.one;
56 effectorRect.anchoredPosition3D = Vector3.zero;
58 effectorRect.gameObject.AddComponent<
ShineEffect>();
59 effectorRect.anchorMax = Vector2.one;
60 effectorRect.anchorMin = Vector2.zero;
62 effectorRect.Rotate(0, 0, -8);
64 effectorRect.offsetMax = Vector2.zero;
65 effectorRect.offsetMin = Vector2.zero;
75 if (yOffset <= -1 || yOffset >= 1)
77 effectRoot.SetActive(
false);
79 else if (!effectRoot.activeSelf)
81 effectRoot.SetActive(
true);
88 void ChangeVal(
float value)
91 if (value <= -1 || value >= 1)
93 effectRoot.SetActive(
false);
95 else if (!effectRoot.activeSelf)
97 effectRoot.SetActive(
true);
105 if (!Application.isPlaying)
107 DestroyImmediate(effectRoot);
System.Drawing.Image Image
Credit Erdener Gonenc - @PixelEnvision.