Tween

Tween ÄÄÆ÷³ÍÆ®¸¦ Äڵ带 ÀÌ¿ëÇؼ­ »ç¿ëÇØ º¸ÀÚ.
Tween ÄÄÆ÷³ÍÆ®´Â ½Ã°£¿¡ µû¶ó Å©±â, À§Ä¡ ȸÀü, Ä®¶ó ¾ËÆÄ°ªµîÀ» º¸°£ ÇÒ¼ö ÀÖµµ·Ï Áö¿ø ÇÑ´Ù.

¹öÆ°À» Ŭ¸¯ÇÏ¸é ¿ÀºêÁ§Æ®°¡ ÀÛ¾ÆÁ³´Ù ¿ø·¡ Å©±â·Î µ¹¾Æ ¿À´Â ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇØ º¸ÀÚ.
Å©±â º¯È­´Â TweenScale ÄÄÆ÷³ÍÆ®¸¦ ÀÌ¿ë ÇÏ¸é µÈ´Ù.

´ÙÀ½°ú °°ÀÌ ÀÛµ¿µÇ´Â ȯ°æÀ» ¸¸µé¾î º¸ÀÚ.
  1. ¹öÆ°À» Ŭ¸¯Çϸé Æ®À©À» ÀÌ¿ëÇØ ¿ÀºêÁ§Æ® Å©±â¸¦ 0.01¹è·Î ÀÛ°Ô ÇÑ´Ù.
  2. Æ®À©ÀÌ ³¡³ª¸é Restore ÇÔ¼ö¿¡¼­ ¿ø·¡ Å©±â·Î µÇµ¹¸°´Ù.


ÄÚµå·Î Æ®À© »ý¼º , ¸Þ¼Òµå º¯°æ,  À̺¥Æ® µô¸®°ÔÀÌÆ®

»õ·Î¿î Æ®À© »ý¼º Çϱâ : ÄÚµå·Î Æ®À©À» »ý¼ºÇÑ´Ù.

TweenScale.Begin (target, duration, Vector3.one * 0.01f);

Æ®À© ÀÌÆåÆ® ¸Þ¼Òµå ¼³Á¤ : Æ®À© ¸Þ¼Òµå¸¦ ÁöÁ¤ÇÑ´Ù. ÁöÁ¤¾ÈÇϸé Linear°¡ ±âº»ÀûÀ¸·Î ¼±Åà µÈ´Ù.

UITweener tween = TweenScale.Begin (target, duration, Vector3.one * 0.01f);
tween.method = UITweener.Method.EaseInOut;

À̺¥Æ® µô¸®°ÔÀÌÆ®( ÄÝ¹é ¸Þ¼Òµå ) - µÎ¸Þ¼ÒµåÀÇ °á°ú´Â µ¿ÀÏÇÏ´Ù
Æ®À©ÀÌ ³¡³µÀ»¶§ Äݹé ÇÔ¼ö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.

EventDelegate.Set (tween.onFinished, this.Restore);
tween.SetOnFinished (this.Restore);

EventDelegate.Set ´ë½Å EventDelegate.Add·Î ¿©·¯ °³ÀÇ ÄÝ¹é ¸Þ¼Òµåµµ Ãß°¡ ÇÒ¼ö ÀÖ´Ù.
Àüü ÄÚµå´Â ´ÙÀ½°ú °°´Ù.

using UnityEngine;
using System.Collections;

public class RestoreScaleOnClick : MonoBehaviour {

    public GameObject target;
    public float duration = 0.3f;

    private void OnClick()
    {
        UITweener tween = TweenScale.Begin (target, duration, Vector3.one * 0.01f);
        tween.method = UITweener.Method.EaseInOut;

        //EventDelegate.Set (tween.onFinished, this.Restore); ¾Æ·¡ Äݹé°ú µ¿ÀÏ
        tween.SetOnFinished (this.Restore);

    }

    private void Restore()
    {
        TweenScale.Begin (target, duration, Vector3.one);
    }
}

ÀνºÆåÆ® ºä¿¡¼­ ¸Þ¼Òµå ÁöÁ¤


NGUI¿¡¼­ Äݹé ÇÔ¼ö ¿ªÇÒÀ» Çϴ°ÍÀº À̺¥Æ® µô¸®°ÔÀÌÆ®( EventDelegate )ÀÌ´Ù.
À̺¥Æ® µô¸®°ÔÀÌÆ®·Î À̺¥Æ® Notify, Method Çʵ带 ¼³Á¤ ÇÒ¼ö ÀÖ´Ù.

EventDelegate¸¦ º¯¼ö·Î Ãß°¡ÇÏ¿© ÇÔ¼ö°¡ ³¡³µÀ»¶§ ºÒ¸®µµ·Ï ÇÑ´Ù.

using UnityEngine;
using System.Collections;

public class RestoreScaleOnClick : MonoBehaviour {

    public EventDelegate onFinishedScale;

    public GameObject target;
    public float duration = 0.3f;

    private void OnClick()
    {
        UITweener tween = TweenScale.Begin (target, duration, Vector3.one * 0.01f);
        tween.method = UITweener.Method.EaseInOut;

        //EventDelegate.Set (tween.onFinished, this.Restore); ¾Æ·¡ Äݹé°ú µ¿ÀÏ
        tween.SetOnFinished (onFinishedScale);

    }

    public void Restore()
    {
        TweenScale.Begin (target, duration, Vector3.one);
    }
}




UIPlayTween ÄÄÆ÷³ÍÆ®


UIPlayTween ÄÄÅä³ÍÆ®´Â À̺¥Æ®°¡ ¹ß»ý½Ã Æ®À© ÄÄÆ÷³ÍÆ®¸¦ Á¦¾î ÇÒ¼ö ÀÖ´Â ÄÄÆ÷³ÍÆ®ÀÌ´Ù.

ÇÑ ¿ÀºêÁ§Æ®¿¡¼­ ¿©·¯°³ÀÇ UIPlayTween ÄÄÆ÷³ÍÆ®¸¦ °¡Áú¼ö ÀÖ´Ù.


-- UIPlayTween ÄÄÆ÷³ÍÆ® --
Tween Target :
Á¦¾îÇÒ Tween ÄÄÆ÷³ÍÆ®°¡ ÀÖ´Â ¿ÀºêÁ§Æ®
Tween Group:
Á¦¾îÇÒ Æ®À© ±×·ìÀ» ÁöÁ¤ÇÑ´Ù.
Æ®À©Å¸°Ù ¿ÀºêÁ§Æ®¿¡ ¿©·¯°³ÀÇ Tween ÄÄÆ÷³ÍÆ®°¡ ÀÖÀ»¶§ ±×·ìÀ» ´Ù¸£°Ô ÁöÁ¤ÇÏ¿© »ç¿ëÇÑ´Ù.
If target is disabled:
Æ®À©Å¸°Ù ¿ÀºêÁ§Æ®°¡ ºñÈ°¼ºÈ­ »óÅ¿¡¼­ µ¿ÀÛÀ» ÁöÁ¤ÇÑ´Ù.
  • Do Nothing ½ÇÇàÇÏÁö ¾Ê´Â´Ù.
  • Enable Then Play Ÿ°ÙÀÌ ºñÈ°¼ºÈ­À̸é È°¼ºÈ­ ½ÃÅ°°í Æ®À©À» ½ÇÇà
  • Ignore Disabled State Ÿ°ÙÀÌ ºñÈ°¼ºÈ­ÀÌ´õ¶óµµ Æ®À©À» ½ÇÇà
When finished:
Æ®À©ÀÌ Á¾·á µÇ¾úÀ»¶§ µ¿ÀÛÀ» ÁöÁ¤ÇÑ´Ù.
  • Do Not Disable  µ¿ÀÛÇÏÁö ¾Ê´Â´Ù
  • Disable After Forward  Á¤¹æÇâÀ¸·Î ½ÇÇà µÇ°í ³¡³¯¶§ Ÿ°Ù ¿ÀºêÁ§Æ®¸¦ ºñÈ°¼ºÈ­
  • Disable After Reverse Æ®À©ÀÌ ¿ª¹æÇâÀ¸·Î ½ÇÇàµÇ°í ³¡³¯¶§ ºñÈ°¼ºÈ­


On Activation: Æ®À©ÀÌ ÀÌ¹Ì ½ÇÇà ÁßÀ϶§ µ¿ÀÛÀ» ¼³Á¤ÇÑ´Ù.
  • Continue From Current ÇöÀç ½ÇÇàÁßÀÎ Æ®À©À» °è¼Ó ½ÇÇà
  • Restart Tween ÇöÀç ½ÇÇàÁßÀÎ Æ®À©À» ¸ØÃß°¡ ´Ù½Ã ½ÃÀÛ
  • Restart If Not Playing Æ®À©ÀÌ ½ÇÇàµÇ°í ÀÖÁö ¾Ê´Â °æ¿ì¿¡¸¸ Æ®À© ´Ù½Ã ½ÃÀÛ

°ÔÀÓ¿ÀºêÁ§Æ®¿¡¼­ ¿©·¯°³ÀÇ Tweener¸¦ °¡Áú¼ö ÀÖ´Ù. Tween GroupÀ» ´Ù¸£°Ô ÁöÁ¤ÇÏ¿© Tweener¸¦ Á¦¾îÇÒ¼ö ÀÖ´Ù.



¾À ·Îµù ÇÒ¶§ TweenAlpha·Î Fade Out È¿°úÁÖ±â


"Game" ¾ÀÀ» ·ÎµùÇÒ¶§, UI ¹è°æÀ» Á¡Á¡ Åõ¸íÇÏ°Ô ¸¸µé°í 0.5ÃÊ ÈÄ¿¡ UI Ä«¸Þ¶ó¸¦ ºñÈ°¼ºÈ­ ÇÑ´Ù.
"Game" ¾ÀÀ» ·ÎµùÈÄ¿¡ EnterGameRoutine ( ) ÇÔ¼ö¸¦ ºÎ¸£¸é µÈ´Ù.

¸Þ´º·Î ´Ù½Ã µ¹¾Æ°¥¶§´Â  Ä«¸Þ¶ó¸¦ È°¼ºÈ­ ÇÏ°í Åõ¸íÇÑ ¸Þ´º¸¦ 0.5 ÃÊÈÄ¿¡ ºÒÅõ¸íÇÏ°Ô ¸¸µç´Ù.

//MenuManager.cs ¼Ò½º
public Camera uiCamera;
public GameObject background;

private IEnumerator EnterGameRoutine()
{
    TweenAlpha.Begin(background, 0.5f, 0);
    yield return new WaitForSeconds(0.5f);
    uiCamera.enabled = false;
}

public void LoadGameScene()
{
    Application.LoadLevel("Game");
    StartCoroutine("EnterGameRoutine");
}

//-------------------------------------------------------------------------------
//GameManager.cs ¼Ò½º
private IEnumerator EnterMenu()
{
    MenuManager.Instance.uiCamera.enabled = true;
    TweenAlpha.Begin(MenuManager.Instance.background, 0.5f, 1);
    yield return new WaitForSeconds(0.5f);
    Application.LoadLevel("Menu"); 
}

public void ReturnToMenu()
{
    //.....
    StartCoroutine(EnterMenu());
}