public void DisableShowframe() { switch (framedElementStatus) { case FramedElementStatus.DrawnOver: if (framedElement.overrideSprite == frameSprite) framedElement.overrideSprite = null; break; case FramedElementStatus.ComponentAdded: Destroy(framedElement); break; case FramedElementStatus.AddedAsChild: Destroy(framedElement.gameObject);break; } framedElement = null; framedElementStatus = FramedElementStatus.NotAssigned; }
public void SetShowframe(RectTransform target) { DisableShowframe(); var gc = target.GetComponent<Graphic>(); void PrepareImage() { framedElement.sprite = frameSprite; framedElement.pixelsPerUnitMultiplier = 20; framedElement.type = Image.Type.Sliced; } if (gc != null) { if (gc is Image) { framedElement = gc as Image; framedElement.overrideSprite = frameSprite; framedElementStatus = FramedElementStatus.DrawnOver; } else { var g = new GameObject("tutorial marker"); g.transform.parent = target; framedElement = g.AddComponent<Image>(); PrepareImage(); var rt = g.GetComponent<RectTransform>(); rt.anchorMin = Vector2.zero; rt.anchorMax = Vector2.one; rt.sizeDelta = Vector2.zero; rt.anchoredPosition = Vector2.zero; rt.localScale = Vector3.one; framedElementStatus = FramedElementStatus.AddedAsChild; } } else { framedElement = target.gameObject.AddComponent<Image>(); PrepareImage(); framedElementStatus = FramedElementStatus.ComponentAdded; } }