12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- using System.Collections;
- using DG.Tweening;
- using UnityEngine;
- [RequireComponent(typeof(SpriteRenderer))]
- public class StickerEffect : MonoBehaviour
- {
- private Transform _cachedTransform;
- public Transform CachedTransform
- {
- get
- {
- if (_cachedTransform == null)
- _cachedTransform = transform;
- return _cachedTransform;
- }
- }
- private SpriteRenderer _cachedSpriteRenderer;
- public SpriteRenderer CachedSpriteRenderer
- {
- get
- {
- if (_cachedSpriteRenderer == null)
- _cachedSpriteRenderer = GetComponent<SpriteRenderer>();
- return _cachedSpriteRenderer;
- }
- }
- private void Awake()
- {
-
- CachedTransform.localScale = Vector2.zero;
- }
- private IEnumerator ShowEffectCoroutine(Sprite stickerImage, Vector2 scale, Quaternion rotate)
- {
- bool endEffect = false;
- CachedSpriteRenderer.sprite = stickerImage;
- CachedTransform.rotation = rotate;
- gameObject.SetActive(true);
- transform.DOScale(scale, 1).SetEase(Ease.InOutElastic).OnComplete(() =>
- {
- endEffect = true;
- });
- yield return new WaitUntil(() => endEffect);
- yield break;
- }
- public Coroutine ShowEffect(Sprite stickerImage, Vector2 scale, Quaternion roatation)
- {
- return StartCoroutine(ShowEffectCoroutine(stickerImage, scale, roatation));
- }
- }
|