{"id":2598,"date":"2026-10-02T03:08:34","date_gmt":"2026-10-02T03:08:34","guid":{"rendered":"https:\/\/wayhope.kro.kr\/?p=2598"},"modified":"2026-10-04T03:09:05","modified_gmt":"2026-10-04T03:09:05","slug":"dotween-%ec%82%ac%ec%9a%a9%eb%b2%95-unity","status":"publish","type":"post","link":"https:\/\/wayhope.kro.kr\/?p=2598","title":{"rendered":"DOTween \uc0ac\uc6a9\ubc95 #Unity"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Unity\uc5d0\uc11c <strong>DOTween<\/strong>\uc740 \uac8c\uc784 \uc624\ube0c\uc81d\ud2b8\uc758 \uc704\uce58, \ud68c\uc804, \ud06c\uae30, \uc0c9\uc0c1, UI \uac12 \ub4f1\uc744 <strong>\uc2dc\uac04\uc5d0 \ub530\ub77c \uc790\uc5f0\uc2a4\ub7fd\uac8c \ubcc0\ud654\uc2dc\ud0a4\ub294 Tweening \ub77c\uc774\ube0c\ub7ec\ub9ac<\/strong>\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud575\uc2ec\uc740 \ub2e8\uc21c\ud558\ub2e4.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>\ud604\uc7ac \uac12 \u2192 \ubaa9\ud45c \uac12 \u2192 \uac78\ub9ac\ub294 \uc2dc\uac04<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \uc624\ube0c\uc81d\ud2b8\ub97c 1\ucd08 \ub3d9\uc548 <code>(10, 0, 0)<\/code>\uc73c\ub85c \uc774\ub3d9\uc2dc\ud0a4\uace0 \uc2f6\ub2e4\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMoveX(10f, 1f);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ud55c \uc904\uc774\uba74 \ub41c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">DOTween\uc774\ub780?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\uc77c\ubc18\uc801\uc73c\ub85c \uc560\ub2c8\uba54\uc774\uc158\uc744 \ucf54\ub4dc\ub85c \uc9c1\uc811 \ub9cc\ub4e4\uba74 \uc774\ub7f0 \uc2dd\uc73c\ub85c \ucc98\ub9ac\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.position = Vector3.Lerp(\n    startPosition,\n    targetPosition,\n    elapsedTime \/ duration\n);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">DOTween\uc744 \uc0ac\uc6a9\ud558\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMove(targetPosition, duration);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc73c\ub85c \ub05d\ub09c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">DOTween\uc774 \uc2dc\uac04 \uad00\ub9ac, \ubcf4\uac04, \uc5c5\ub370\uc774\ud2b8 \ub4f1\uc744 \ucc98\ub9ac\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\uc124\uce58<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\uac00\uc7a5 \uc77c\ubc18\uc801\uc778 \ubc29\ubc95\uc740 Unity Asset Store \ub610\ub294 Package Manager\ub97c \ud1b5\ud574 DOTween\uc744 \ud504\ub85c\uc81d\ud2b8\uc5d0 \ucd94\uac00\ud558\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc124\uce58 \ud6c4 \ucf54\ub4dc\uc5d0\uc11c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using DG.Tweening;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc744 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\uae30\ubcf8 \uc0ac\uc6a9\ubc95<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\uc774\ub3d9<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMove(\n    new Vector3(10f, 0f, 0f),\n    1f\n);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\uc7ac \uc704\uce58\uc5d0\uc11c <code>(10, 0, 0)<\/code>\uae4c\uc9c0 1\ucd08 \ub3d9\uc548 \uc774\ub3d9\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucd95 \ud558\ub098\ub9cc \uc6c0\uc9c1\uc77c \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMoveX(10f, 1f);\ntransform.DOMoveY(5f, 1f);\ntransform.DOMoveZ(3f, 1f);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub85c\uceec \uc88c\ud45c \uae30\uc900\uc774\ub77c\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOLocalMove(targetPosition, 1f);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud68c\uc804<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DORotate(\n    new Vector3(0f, 180f, 0f),\n    1f\n);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">1\ucd08 \ub3d9\uc548 Y\ucd95\uc73c\ub85c 180\ub3c4 \ud68c\uc804\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c1\ub300\uc801\uc73c\ub85c \ud68c\uc804\uc2dc\ud0a4\ub824\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DORotate(\n    new Vector3(0f, 180f, 0f),\n    1f,\n    RotateMode.FastBeyond360\n);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Scale<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOScale(\n    Vector3.one * 2f,\n    0.5f\n);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">0.5\ucd08 \ub3d9\uc548 \ud06c\uae30\ub97c 2\ubc30\ub85c \ub9cc\ub4e0\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud2b9\uc815 \ucd95\ub9cc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOScaleX(2f, 0.5f);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">UI \uc560\ub2c8\uba54\uc774\uc158<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">DOTween\uc758 \uac15\ub825\ud55c \ubd80\ubd84 \uc911 \ud558\ub098\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 UI \ud328\ub110\uc744 \uc624\ub978\ucabd\uc73c\ub85c \uc774\ub3d9\uc2dc\ud0a4\ub824\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RectTransform rect = GetComponent&lt;RectTransform&gt;();\n\nrect.DOAnchorPosX(500f, 0.5f);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">CanvasGroup\uc744 \uc774\uc6a9\ud558\uba74 \ud398\uc774\ub4dc\ub3c4 \uc27d\uac8c \ub9cc\ub4e4 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CanvasGroup canvasGroup = GetComponent&lt;CanvasGroup&gt;();\n\ncanvasGroup.DOFade(0f, 0.5f);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\uc2dc \ub098\ud0c0\ub098\uac8c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>canvasGroup.DOFade(1f, 0.5f);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\uc0c9\uc0c1 \ubcc0\uacbd<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">SpriteRenderer:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>spriteRenderer.DOColor(Color.red, 0.5f);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">UI Image:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>image.DOColor(Color.red, 0.5f);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Text \uc560\ub2c8\uba54\uc774\uc158<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">TextMeshPro\ub3c4 \uc9c0\uc6d0\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using TMPro;\nusing DG.Tweening;\n\nTMP_Text text;\n\ntext.DOColor(Color.red, 0.5f);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc22b\uc790 \uac19\uc740 \uac12\uc744 \uc560\ub2c8\uba54\uc774\uc158\uc2dc\ud0a4\ub294 \uac83\ub3c4 \uac00\ub2a5\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int value = 0;\n\nDOTween.To(\n    () =&gt; value,\n    x =&gt; value = x,\n    100,\n    1f\n);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Ease<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">DOTween\uc744 \uc0ac\uc6a9\ud558\ub294 \uac00\uc7a5 \uc911\uc694\ud55c \uc774\uc720 \uc911 \ud558\ub098\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub0e5 \uc120\ud615\uc73c\ub85c \uc6c0\uc9c1\uc774\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc18d\ub3c4\uac00 \uc77c\uc815\ud558\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud558\uc9c0\ub9cc \uc2e4\uc81c UI\ub098 \uac8c\uc784 \uc560\ub2c8\uba54\uc774\uc158\uc5d0\uc11c\ub294 \ubcf4\ud1b5 \uac00\uc18d\/\uac10\uc18d\uc774 \ud544\uc694\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMoveX(10f, 1f)\n    .SetEase(Ease.OutQuad);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\ud45c\uc801\uc778 Ease:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Ease.Linear\nEase.InQuad\nEase.OutQuad\nEase.InOutQuad\n\nEase.InCubic\nEase.OutCubic\nEase.InOutCubic\n\nEase.InBack\nEase.OutBack\n\nEase.InBounce\nEase.OutBounce\n\nEase.InElastic\nEase.OutElastic<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \ubc84\ud2bc\uc774 \ud280\uc5b4\ub098\uc624\ub294 \ub290\ub08c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOScale(1.2f, 0.3f)\n    .SetEase(Ease.OutBack);<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Sequence<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">DOTween\uc758 \ud575\uc2ec \uae30\ub2a5\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5ec\ub7ec Tween\uc744 <strong>\uc21c\uc11c\ub300\ub85c \uc2e4\ud589<\/strong>\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Sequence sequence = DOTween.Sequence();\n\nsequence.Append(\n    transform.DOMoveX(5f, 1f)\n);\n\nsequence.Append(\n    transform.DOMoveY(3f, 0.5f)\n);\n\nsequence.Append(\n    transform.DOScale(2f, 0.5f)\n);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc21c\uc11c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Move X\n  \u2193\nMove Y\n  \u2193\nScale<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ub3d9\uc2dc\uc5d0 \uc2e4\ud589\ud558\uae30<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Join()<\/code>\uc744 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Sequence sequence = DOTween.Sequence();\n\nsequence.Append(\n    transform.DOMoveX(5f, 1f)\n);\n\nsequence.Join(\n    transform.DOScale(2f, 1f)\n);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7ec\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Move X \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500&gt;\nScale  \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500&gt;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub450 \uac1c\uac00 \ub3d9\uc2dc\uc5d0 \uc2e4\ud589\ub41c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\uc77c\uc815 \uc2dc\uac04 \uae30\ub2e4\ub9ac\uae30<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\"><code>AppendInterval()<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Sequence sequence = DOTween.Sequence();\n\nsequence.Append(\n    transform.DOMoveX(5f, 1f)\n);\n\nsequence.AppendInterval(1f);\n\nsequence.Append(\n    transform.DOMoveX(0f, 1f)\n);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uacb0\uacfc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\uc774\ub3d9\n \u2193\n1\ucd08 \ub300\uae30\n \u2193\n\ubcf5\uadc0<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ucf5c\ubc31<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Tween\uc774 \ub05d\ub0ac\uc744 \ub54c \ucf54\ub4dc\ub97c \uc2e4\ud589\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMoveX(10f, 1f)\n    .OnComplete(() =&gt;\n    {\n        Debug.Log(\"\uc774\ub3d9 \uc644\ub8cc\");\n    });<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2dc\uc791\ud560 \ub54c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMoveX(10f, 1f)\n    .OnStart(() =&gt;\n    {\n        Debug.Log(\"\uc2dc\uc791\");\n    });<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5c5\ub370\uc774\ud2b8\ub9c8\ub2e4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMoveX(10f, 1f)\n    .OnUpdate(() =&gt;\n    {\n        Debug.Log(transform.position);\n    });<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ubc18\ubcf5<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMoveX(10f, 1f)\n    .SetLoops(3);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">3\ubc88 \ubc18\ubcf5\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubb34\ud55c \ubc18\ubcf5:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMoveX(10f, 1f)\n    .SetLoops(-1);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Yoyo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOScale(2f, 0.5f)\n    .SetLoops(-1, LoopType.Yoyo);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uacb0\uacfc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>1\n \u2193\n2\n \u2193\n1\n \u2193\n2\n \u2193\n...<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">UI \uac15\uc870 \ud6a8\uacfc \ub4f1\uc5d0 \uc0c1\ub2f9\ud788 \uc720\uc6a9\ud558\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Tween \uc81c\uc5b4<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Tween \uc790\uccb4\ub97c \ubcc0\uc218\ub85c \ubc1b\uc744 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Tween tween;\n\ntween = transform.DOMoveX(10f, 1f);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub9ac\uace0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tween.Pause();<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>tween.Play();<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>tween.Kill();<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>tween.Restart();<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>tween.Complete();<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>tween.Rewind();<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Kill<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\ubb34\uc5d0\uc11c \ub9e4\uc6b0 \uc911\uc694\ud558\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \ubc84\ud2bc\uc744 \uc5ec\ub7ec \ubc88 \ud074\ub9ad\ud574\uc11c \uac19\uc740 Tween\uc744 \uacc4\uc18d \uc0dd\uc131\ud558\uba74 \ubb38\uc81c\uac00 \uc0dd\uae38 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMoveX(10f, 1f);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uac78 \ubc18\ubcf5 \ud638\ucd9c\ud558\uba74 Tween\uc774 \uc5ec\ub7ec \uac1c \uc0dd\uc131\ub420 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub798\uc11c \uae30\uc874 Tween\uc744 \uc81c\uac70\ud558\uace0 \uc0c8 Tween\uc744 \uc2dc\uc791\ud558\ub294 \uc2dd\uc73c\ub85c \uc791\uc131\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOKill();\n\ntransform.DOMoveX(10f, 1f);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub610\ub294 Tween\uc744 \ubcc0\uc218\ub85c \uad00\ub9ac:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>private Tween moveTween;\n\nvoid Move()\n{\n    moveTween?.Kill();\n\n    moveTween = transform.DOMoveX(10f, 1f);\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">ID\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Tween\uc5d0 ID\ub97c \uc9c0\uc815\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMoveX(10f, 1f)\n    .SetId(\"PlayerMove\");<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub098\uc911\uc5d0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>DOTween.Kill(\"PlayerMove\");<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud574\ub2f9 ID\uc758 Tween\uc744 \uc81c\uac70\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\uac8c\uc784 \uc624\ube0c\uc81d\ud2b8\uac00 \ud30c\uad34\ub420 \ub54c<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\ubcf4\ud1b5 DOTween\uc740 \ub300\uc0c1\uc774 \ud30c\uad34\ub418\uba74 \uad00\ub828 Tween\ub3c4 \uc801\uc808\ud788 \uc815\ub9ac\ub418\uc9c0\ub9cc, \uba85\uc2dc\uc801\uc73c\ub85c \uad00\ub9ac\ud558\uace0 \uc2f6\ub2e4\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Tween tween;\n\nvoid Start()\n{\n    tween = transform.DOMoveX(10f, 1f);\n}\n\nvoid OnDestroy()\n{\n    tween?.Kill();\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub9cc \uc77c\ubc18\uc801\uc778 Unity \ucf54\ub4dc\uc5d0\uc11c\ub294 DOTween\uc758 \ub300\uc0c1 \uae30\ubc18 \uad00\ub9ac\uc5d0 \ub9e1\uae30\ub294 \uacbd\uc6b0\ub3c4 \ub9ce\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Relative<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\uc7ac \uc704\uce58\ub97c \uae30\uc900\uc73c\ub85c \uc774\ub3d9\ud558\uace0 \uc2f6\ub2e4\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMoveX(5f, 1f)\n    .SetRelative();<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\uc7ac X\uac00 10\uc774\ub77c\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>10 \u2192 15<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\uc7ac X\uac00 20\uc774\ub77c\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>20 \u2192 25<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">From<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\ubaa9\ud45c \uc704\uce58\uc5d0\uc11c \ud604\uc7ac \uc704\uce58\ub85c \ub4e4\uc5b4\uc624\ub294 \uc5f0\ucd9c\ub3c4 \uac00\ub2a5\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMoveX(0f, 1f)\n    .From(10f);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac1c\ub150\uc801\uc73c\ub85c:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>10 \u2192 0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">UI \ub4f1\uc7a5 \uc5f0\ucd9c\uc5d0\uc11c \uc0c1\ub2f9\ud788 \uc790\uc8fc \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">UI \ud328\ub110 \ub4f1\uc7a5 \uc608\uc81c<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \uba54\ub274\uac00 \uc544\ub798\uc5d0\uc11c \uc704\ub85c \uc62c\ub77c\uc624\ub294 \uc5f0\ucd9c\uc774\ub77c\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;SerializeField]\nprivate RectTransform panel;\n\npublic void Show()\n{\n    panel.DOAnchorPosY(0f, 0.5f)\n        .SetEase(Ease.OutCubic);\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2eb\uae30:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public void Hide()\n{\n    panel.DOAnchorPosY(-800f, 0.5f)\n        .SetEase(Ease.InCubic);\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ubc84\ud2bc \ud074\ub9ad \uc560\ub2c8\uba54\uc774\uc158<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\ubc84\ud2bc\uc744 \ub20c\ub800\uc744 \ub54c \uc791\uc544\uc84c\ub2e4\uac00 \ub2e4\uc2dc \ub3cc\uc544\uc624\uac8c \ub9cc\ub4e4 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public void OnClick()\n{\n    transform.DOScale(0.9f, 0.1f)\n        .SetEase(Ease.OutQuad)\n        .OnComplete(() =&gt;\n        {\n            transform.DOScale(1f, 0.1f);\n        });\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sequence\ub85c \ub9cc\ub4dc\ub294 \uac8c \ub354 \uae54\ub054\ud558\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public void OnClick()\n{\n    DOTween.Sequence()\n        .Append(transform.DOScale(0.9f, 0.1f))\n        .Append(transform.DOScale(1f, 0.1f));\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">Sequence + UI\uc758 \uc2e4\uc804 \uc608\uc81c<\/h1>\n\n\n\n<pre class=\"wp-block-code\"><code>public void Show()\n{\n    CanvasGroup canvasGroup = GetComponent&lt;CanvasGroup&gt;();\n\n    transform.localScale = Vector3.zero;\n    canvasGroup.alpha = 0f;\n\n    DOTween.Sequence()\n        .Append(\n            canvasGroup.DOFade(1f, 0.2f)\n        )\n        .Join(\n            transform.DOScale(\n                Vector3.one,\n                0.4f\n            ).SetEase(Ease.OutBack)\n        );\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uacb0\uacfc:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Alpha  : 0 \u2192 1\nScale  : 0 \u2192 1\n          \ub3d9\uc2dc\uc5d0 \uc2e4\ud589<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac8c\uc784 UI\uc5d0\uc11c\ub294 \uc774\ub7f0 \uc2dd\uc73c\ub85c \uc0c1\ub2f9\ud788 \ub9ce\uc774 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">DOTween\uc5d0\uc11c \uc54c\uc544\ub46c\uc57c \ud560 \ud575\uc2ec<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">DOTween\uc744 \ucc98\uc74c \ubc30\uc6b8 \ub54c \ubaa8\ub4e0 API\ub97c \uc678\uc6b8 \ud544\uc694\ub294 \uc5c6\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\uc81c\ub85c\ub294 \ub2e4\uc74c \uc815\ub3c4\ub9cc \uc81c\ub300\ub85c \uc54c\uba74 \ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>DOMove\nDOLocalMove\n\nDORotate\nDOScale\n\nDOFade\nDOColor\n\nDOAnchorPos\n\nSetEase\nSetDelay\nSetLoops\nSetRelative\n\nOnComplete\nOnStart\n\nSequence\nAppend\nJoin\nAppendInterval\n\nPlay\nPause\nKill\nRestart<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub9ac\uace0 \uac00\uc7a5 \uc911\uc694\ud55c \uac1c\ub150\uc740 \uc774\uac83\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Tween\n  \u2193\nSequence\n  \u2193\nCallback\n  \u2193\nLifecycle \uad00\ub9ac<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc989 DOTween\uc744 \ub2e8\uc21c\ud788<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>transform.DOMove(...);<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud558\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub85c\ub9cc \ubcf4\uba74 \ud65c\uc6a9\ub3c4\uac00 \ub0ae\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\uc81c\ub85c\ub294 <strong>\uac8c\uc784\uc758 \uc5f0\ucd9c\uc744 \ucf54\ub4dc\ub85c \uc870\ub9bd\ud558\ub294 \uc2dc\uc2a4\ud15c<\/strong>\uc73c\ub85c \ubcf4\ub294 \uac8c \ub9de\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud2b9\ud788 Unity\uc5d0\uc11c\ub294<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>UI \ub4f1\uc7a5\/\ud1f4\uc7a5\n\ubc84\ud2bc \ud53c\ub4dc\ubc31\n\ub370\ubbf8\uc9c0 \ud14d\uc2a4\ud2b8\nHP \ubcc0\ud654\n\uce74\uba54\ub77c \uc5f0\ucd9c\n\uc624\ube0c\uc81d\ud2b8 \uc774\ub3d9\n\uc2a4\ud0ac \uc774\ud399\ud2b8\n\ubaac\uc2a4\ud130 \ud53c\uaca9\n\ud31d\uc5c5\n\uc2ac\ub77c\uc774\ub4dc \uba54\ub274\n\ud398\uc774\ub4dc\n\uc22b\uc790 \uce74\uc6b4\ud2b8<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac19\uc740 \uac83\ub4e4\uc744 DOTween\uc73c\ub85c \uc0c1\ub2f9\ud788 \ube60\ub974\uac8c \uad6c\uc131\ud560 \uc218 \uc788\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Unity\uc5d0\uc11c DOTween\uc740 \uac8c\uc784 \uc624\ube0c\uc81d\ud2b8\uc758 \uc704\uce58, \ud68c\uc804, \ud06c\uae30, \uc0c9\uc0c1, UI \uac12 \ub4f1\uc744 \uc2dc\uac04\uc5d0 \ub530\ub77c \uc790\uc5f0\uc2a4\ub7fd\uac8c \ubcc0\ud654\uc2dc\ud0a4\ub294 Tweening \ub77c\uc774\ube0c\ub7ec\ub9ac\ub2e4. \ud575\uc2ec\uc740 \ub2e8\uc21c\ud558\ub2e4. \ud604\uc7ac \uac12 \u2192 \ubaa9\ud45c \uac12 \u2192 \uac78\ub9ac\ub294 \uc2dc\uac04 \uc608\ub97c \ub4e4\uc5b4 \uc624\ube0c\uc81d\ud2b8\ub97c 1\ucd08 \ub3d9\uc548 (10, 0, 0)\uc73c\ub85c \uc774\ub3d9\uc2dc\ud0a4\uace0 \uc2f6\ub2e4\uba74: \uc774 \ud55c \uc904\uc774\uba74 \ub41c\ub2e4. DOTween\uc774\ub780? \uc77c\ubc18\uc801\uc73c\ub85c \uc560\ub2c8\uba54\uc774\uc158\uc744 \ucf54\ub4dc\ub85c \uc9c1\uc811 \ub9cc\ub4e4\uba74 \uc774\ub7f0 \uc2dd\uc73c\ub85c \ucc98\ub9ac\ud574\uc57c \ud55c\ub2e4. DOTween\uc744 \uc0ac\uc6a9\ud558\uba74: \uc73c\ub85c \ub05d\ub09c\ub2e4. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53],"tags":[],"class_list":["post-2598","post","type-post","status-publish","format-standard","hentry","category-game"],"_links":{"self":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/2598","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2598"}],"version-history":[{"count":1,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/2598\/revisions"}],"predecessor-version":[{"id":2599,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/2598\/revisions\/2599"}],"wp:attachment":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2598"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2598"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2598"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}