¹öÆ°¿¡¼ ¹öÆ°À¸·Î coins ÀÌÆåÆ®¸¦ »Ñ·ÁÁÖÀÚ. ½ÇÇà ½ÃÅ°¸é ¹öÆ°¿¡¼ ¹öÆ°À¸·Î ¿©·¯°³ÀÇ ½ºÇÁ¶óÀÌÆ® À̹ÌÁö°¡ ¹öÆ°¿¡¼ ¹öÆ°À¸·Î À̵¿µÈ´Ù. itween°ú DOTweenÀ» ÀÌ¿ëÇØ ½ºÇÁ¶óÀÌÆ®¸¦ »Ñ·Áº¸ÀÚ. ¸¸µå´Â ¼ø¼´Â ´ÙÀ½°ú °°´Ù. 1. ĵ¹ö½º "Render Mode"¸¦ "Screen Space - Camera"·Î ¹Ù²Û´Ù. ·»´õ¸ðµå°¡ "Screen Space - Overlay"ÀÎ °æ¿ì ½ºÇÁ¶óÀÌÆ®°¡ ¹öÆ° ¾Æ·¡¿¡ ±×·ÁÁø´Ù. ¹öÆ° À§¿¡ ±×¸®±â À§ÇØ ·»´õ ¸ðµå¸¦ "Screen Space - Camera"·Î ¹Ù²Û´Ù. 2. ugui¸¦ ´ÙÀ½°ú °°ÀÌ ¸¸µç´Ù. ui¸¦ ´ÙÀ½°ú °°ÀÌ ¹èÄ¡ ÇÑ´Ù. 3. ½ºÇÁ¶óÀÌÆ® À̹ÌÁö¸¦ ¼³Á¤ÇÑ´Ù. À̹ÌÁö "Texture Type"À» "Sprite (2D and UI)"·Î ¼³Á¤ÇÑ´Ù. 4. ½ºÇÁ¶óÀÌÆ® À̹ÌÁö¸¦ ÇÁ¸®ÆÕÀ¸·Î ¸¸µç´Ù. ½ºÇÁ¶óÀÌÆ® À̹ÌÁö¸¦ ¹öÆ°¿¡¼ ¹öÆ°À¸·Î ¿©·¯°³ »Ñ·ÁÁÖ±â À§ÇØ ÇÁ¸®ÆÕÀ» ¸¸µç´Ù. ugui º¸´Ù À§¿¡ ±×·ÁÁÖ±â À§ÇØ "Order in Layer"¸¦ 1·Î ¼³Á¤ÇÑ´Ù. 5. »ö±òÀÖ´Â ¹öÆ° ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÑ´Ù. iTweenÀ¸·Î ½ÇÇàµÇ´Â ½ºÅ©¸³Æ®ÀÌ´Ù. »ö±òÀÖ´Â ¹öÆ°ÀÇ ÄÄÆ÷³ÍÆ®·Î Ãß°¡ ÇÑ´Ù. UIFxFromTo.cs ÆÄÀÏ using System.Collections;
using System.Collections.Generic; using UnityEngine; public class UIFxFromTo : MonoBehaviour { public int amount; public GameObject uifxObject; public GameObject original; public GameObject destination; public iTween.EaseType easeType; public float rate; public float lifeTime; public Vector3 offset; public void RunFromTo() { StartCoroutine("FromTo"); } IEnumerator FromTo() { for (int i = 0; i < amount; i++) { var fx = Instantiate(uifxObject, original.transform.position, Quaternion.identity) as GameObject; fx.transform.SetParent(original.transform); iTween.MoveTo(fx, iTween.Hash("position", destination.transform.position + offset, "easetype", easeType, "ignoretimescale", true, "time", lifeTime)); Destroy(fx, lifeTime + 1); yield return new WaitForSeconds(rate); } } } 6. target ¹öÆ° ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÑ´Ù. DOTweenÀ¸·Î ½ÇÇàµÇ´Â ½ºÅ©¸³Æ®ÀÌ´Ù. »ö±òÀÖ´Â ¹öÆ°ÀÇ ÄÄÆ÷³ÍÆ®·Î Ãß°¡ ÇÑ´Ù. UiVFXFromTo.cs ÆÄÀÏ using System.Collections;
using System.Collections.Generic; using UnityEngine; using DG.Tweening; public class UiVFXFromTo : MonoBehaviour { public int amount; public GameObject uifxObject; public GameObject original; public GameObject destination; public Ease easeType; public float rate; public float lifeTime; public Vector3 offset; public void RunFromTo() { StartCoroutine("FromTo"); } IEnumerator FromTo() { for (int i = 0; i < amount; i++) { var fx = Instantiate(uifxObject, original.transform.position, Quaternion.identity) as GameObject; fx.transform.SetParent(original.transform); fx.transform.DOMove(destination.transform.position + offset, lifeTime, false) .SetEase(easeType); //iTween.MoveTo(fx, iTween.Hash("position", destination.transform.position + offset, "easetype", easeType, "ignoretimescale", true, "time", lifeTime)); Destroy(fx, lifeTime + 1); yield return new WaitForSeconds(rate); } } } |