반응형

DOTween의 DOPath() 예제


아래와 같은 스크립트를 만든다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
 
public class Tween : MonoBehaviour
{
    public Ease ease;
 
    public Transform wayPoint1;
    public Transform wayPoint2;
    public Transform wayPoint3;
 
    private Vector3[] wayPoints;
 
    // Start is called before the first frame update
    void Start()
    {
        // static DOTween.Init(bool recycleAllByDefault = false, bool useSafeMode = true, LogBehaviour logBehaviour = LogBehaviour.ErrorsOnly)
        // Initializes DOTween.
        DOTween.Init(falsetrue, LogBehaviour.ErrorsOnly);
 
        wayPoints = new Vector3[3];
        wayPoints.SetValue(wayPoint1.position, 0);
        wayPoints.SetValue(wayPoint2.position, 1);
        wayPoints.SetValue(wayPoint3.position, 2);
        // wayPoints = new[] { wayPoint1.position, wayPoint2.position, wayPoint3.position };
 
        // DOPath(Vector3[] waypoints, float duration, PathType pathType = Linear, PathMode pathMode = Full3D, int resolution = 10, Color gizmoColor = null)
        // Tweens a Transform's position through the given path waypoints, using the chosen path algorithm.
        transform.DOPath(wayPoints, 6.0f, PathType.CatmullRom).SetLookAt(new Vector3(0.0f, 0.0f, 0.0f)).SetEase(ease).SetLoops(-1, LoopType.Yoyo);
    }
 
    // Update is called once per frame
    void Update()
    {
 
    }
}
 


스크립트 이름은 Tween으로 지정 한다.


Empty Object(WayPoint)와 Cube를 생성하고 Cube에 Tween 스크립트를 추가한다.


Empty Object를 3개 생성하고 WayPointX로 이름을 바꿔서 Cube가 이동할 위치에 배치한다. Cube Inspector 창의 Tween 스크립트에서 Way Point1~3 변수에 WayPoint1~3 오브젝트를 지정한다. Ease 변수도 In Bounce 등 원하는 ease로 변경한다.


플레이 버튼을 클릭 하면 Cube가 지정한 위치들을 거쳐 이동 한다. DOPath()의 경우 Scene창에 이동 경로가 표시 된다.


반응형
Posted by J-sean
:
반응형

DOTween의 Sequence 예제


아래와 같은 스크립트를 만든다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
 
public class Tween : MonoBehaviour
{
    public Ease ease;
 
    // Start is called before the first frame update
    void Start()
    {
        // static DOTween.Init(bool recycleAllByDefault = false, bool useSafeMode = true, LogBehaviour logBehaviour = LogBehaviour.ErrorsOnly)
        // Initializes DOTween.
        DOTween.Init(falsetrue, LogBehaviour.ErrorsOnly);
 
        // static DOTween.Sequence()
        // Returns a usable Sequence which you can store and add tweens to.
        Sequence mySeq = DOTween.Sequence();
 
        // Delays and loops (when not infinite) will work even inside nested tweens.
 
        // Append(Tween tween)
        // Adds the given tween to the end of the Sequence.
        mySeq.Append(transform.DOMove(new Vector3(5.0f, 0.0f, 5.0f), 2false).SetEase(ease).SetLoops(3, LoopType.Yoyo));
        mySeq.Append(transform.DOMove(new Vector3(-5.0f, 0.0f, 5.0f), 2false).SetEase(ease).SetLoops(3, LoopType.Yoyo));
        // 첫 번째 DOMove를 3회 반복, 그리고 두 번째 DOMove를 3회 반복 한다. 전체(첫 번째 + 두 번째) DOMove를 3회 반복하는게 아니다.
 
        // Insert a lookat tween for the whole duration of the Sequence
 
        // Insert(float atPosition, Tween tween)
        // Inserts the given tween at the given time position, thus allowing you to overlap tweens instead of just placing them one after each other.
        mySeq.Insert(0, transform.DOLookAt(new Vector3(0.0f, 0.0f, 0.0f), mySeq.Duration()));
        // float Duration(bool includeLoops = true)
        // Returns the duration of the tween(delays excluded, loops included if includeLoops is TRUE).
    }
 
    // Update is called once per frame
    void Update()
    {
 
    }
}
 


스크립트 이름은 Tween으로 지정 한다.


Cube를 생성하고 Tween 스크립트를 추가한다.


Inspector 창의 Tween 스크립트에서 Ease 변수를 In Bounce 등 원하는 ease로 변경한다.


플레이 버튼을 클릭 하면 Cube가 첫 번째 DOMove 3회, 두 번째 DOMove 3회를 반복하며 전체 시간에 걸쳐 원점을 향해 회전 한다.


반응형
Posted by J-sean
:
반응형

DOTween의 DOMove(), DOColor() 예제


아래와 같은 스크립트를 만든다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
 
public class Tween : MonoBehaviour
{
    public Ease ease;
 
    // Start is called before the first frame update
    void Start()
    {
        // static DOTween.Init(bool recycleAllByDefault = false, bool useSafeMode = true, LogBehaviour logBehaviour = LogBehaviour.ErrorsOnly)
        // Initializes DOTween.
        DOTween.Init(falsetrue, LogBehaviour.ErrorsOnly);
 
        // DOMove(Vector3 to, float duration, bool snapping)
        // Moves the target's position to the given value.
        transform.DOMove(new Vector3(0.0f, 0.0f, 5.0f), 3.0f, false).SetEase(ease).SetLoops(-1, LoopType.Yoyo);
 
        // DOColor(Color to, float duration)
        // Changes the target's color to the given one.
        transform.GetComponent<MeshRenderer>().material.DOColor(Color.red, 3.0f).SetLoops(-1, LoopType.Yoyo);
    }
 
    // Update is called once per frame
    void Update()
    {
        
    }
}
 


스크립트 이름은 Tween으로 지정 한다.


Cube를 생성하고 Tween 스크립트를 추가한다.


Inspector 창의 Tween 스크립트에서 Ease 변수를 In Bounce 등 원하는 ease로 변경한다.


플레이 버튼을 클릭 하면 Cube가 지정한 동작으로 움직이며 색깔이 변경 된다.

반응형
Posted by J-sean
: