TweenLogic

Tween 관련 기능들을 제공합니다.

# Methods

[{"index":"float Ease(float startValue, float endValue, float duration, EaseType type, float tweenTime)","0":"시작값과 끝값 사이의 보간을 수행합니다. tweenTime을 duration으로 나눈 값으로 보간을 수행합니다. duration이 0인 경우 endValue를 반환하며, tweenTime이 0보다 작거나 duration보다 큰 경우 예상치 못한 값이 반환될 수 있습니다."}]

[{"index":"Tweener MakeNativeTween(float startValue, float endValue, float duration, EaseType type, Component targetComponent, string methodName)","0":"네이티브 컴포넌트의 메소드를 자동으로 호출하여 시작값과 끝값 사이의 보간을 수행하는 Tweener 객체를 만듭니다. targetComponent에는 네이티브 컴포넌트만 지정할 수 있습니다. methodName에는 해당 컴포넌트에 있는 메소드 중 타입이 void이고, float 하나를 매개 변수로 받는 메소드를 지정해야 합니다. MakeTween()을 사용하는 것보다 성능이 뛰어납니다."}]

[{"index":"Tweener MakeTween(float startValue, float endValue, float duration, EaseType type, func tweenFunction)","0":"시작값과 끝값 사이의 보간을 수행하는 Tweener 객체를 만듭니다."}]

[{"index":"Tweener MakeTween(Vector2 startValue, Vector2 endValue, float duration, EaseType type, func tweenFunction)","0":"시작값과 끝값 사이의 보간을 수행하는 Tweener 객체를 만듭니다."}]

[{"index":"Tweener MakeTween(Vector3 startValue, Vector3 endValue, float duration, EaseType type, func tweenFunction)","0":"시작값과 끝값 사이의 보간을 수행하는 Tweener 객체를 만듭니다."}]

[{"index":"Tweener MoveOffset(Entity entity, Vector2 offset, float duration, EaseType type)","0":"entity를 현재 위치 기준으로 offset만큼 이동시키는 Tweener를 생성하고 재생합니다."}]

[{"index":"Tweener MoveTo(Entity entity, Vector2 destination, float duration, EaseType type)","0":"entity를 목적지까지 이동시키는 Tweener를 생성하고 재생합니다."}]

[{"index":"Tweener PlayTween(float startValue, float endValue, float duration, EaseType type, func tweenFunction)","0":"시작값과 끝값 사이의 보간을 수행하는 Tweener를 만들고 재생합니다. Tweener는 수행하는 동안 보간된 값을 매개 변수로 하여 tweenFunction을 호출합니다."}]

[{"index":"Tweener PlayTween(Vector2 startValue, Vector2 endValue, float duration, EaseType type, func tweenFunction)","0":"시작값과 끝값 사이의 보간을 수행하는 Tweener를 만들고 재생합니다. Tweener는 수행하는 동안 보간된 값을 매개 변수로 하여 tweenFunction을 호출합니다."}]

[{"index":"Tweener PlayTween(Vector3 startValue, Vector3 endValue, float duration, EaseType type, func tweenFunction)","0":"시작값과 끝값 사이의 보간을 수행하는 Tweener를 만들고 재생합니다. Tweener는 수행하는 동안 보간된 값을 매개 변수로 하여 tweenFunction을 호출합니다."}]

[{"index":"Tweener RotateAroundOffset(Entity entity, float angle, Vector2 offset, boolean lookOffset, float duration, EaseType type)","0":"entity를 offset을 축으로 angle만큼 반시계 방향으로 회전시키는 Tweener를 생성하고 재생합니다."}]

[{"index":"Tweener RotateTo(Entity entity, float angle, float duration, EaseType type)","0":"entity를 angle만큼 반시계 방향으로 회전시키는 Tweener를 생성하고 재생합니다."}]

[{"index":"Tweener ScaleTo(Entity entity, Vector2 targetScale, float duration, EaseType type)","0":"entity를 targetScale만큼 확대 혹은 축소하는 Tweener를 생성하고 재생합니다."}]

##### inherited from Logic:

[{"index":"EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)","0":"이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다."}]

[{"index":"EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)","0":"이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다."}]

[{"index":"boolean DisconnectEvent(string key, EventHandlerBase eventHandler)","0":"타입의 이름이 key인 이벤트와 핸들러와의 연결을 끊습니다."}]

[{"index":"boolean DisconnectEvent(Type eventType, EventHandlerBase eventHandler)","0":"타입이 eventType인 이벤트와 핸들러와의 연결을 끊습니다."}]

[{"index":"boolean IsClient()","0":"현재 실행 환경이 클라이언트인지 아닌지의 여부를 반환합니다."}]

[{"index":"boolean IsServer()","0":"현재 실행 환경이 서버인지 아닌지의 여부를 반환합니다."}]

[{"index":"void SendEvent(EventType sendEvent)","0":"이벤트를 발생시킵니다."}]

# Examples

#### MoveOffset

`MoveOffset()` 함수를 활용해 움직임을 구현하는 예제입니다.
    
    
    @Component
    script StartOffsetTween extends Component
        @ExecSpace("ServerOnly")
        method void OnBeginPlay()
        _TweenLogic:MoveOffset(self.Entity, Vector2(6,0), 6, EaseType.QuartEaseIn)
        end
    end
    

#### PlayTween

`PlayTween()` 함수를 활용해 움직임을 구현하는 예제입니다.
    
    
    @Component
    script HorizontalMover extends Component
        @ExecSpace("ServerOnly")
        method void OnBeginPlay()
        local originalPosition = self.Entity.TransformComponent.Position
        local tweenCallback = function (tweenValue)
        	self.Entity.TransformComponent.Position = originalPosition + tweenValue:ToVector3()
        end
        _TweenLogic:PlayTween(Vector2(0,0), Vector2(6,0), 6, EaseType.QuartEaseIn, tweenCallback)
        end
    end
    

#### Ease

`Ease()` 함수를 활용해 움직임을 구현하는 예제입니다.
    
    
    @Component
    script HorizontalTween extends Component
        method void OnBeginPlay()
        self._T.originalPosition = self.Entity.TransformComponent.Position
        self._T.elapsedTime = 0
        self._T.tweenDuration = 6
        self._T.isTweening = true
        end
    
        @ExecSpace("ServerOnly")
        method void OnUpdate(number delta)
        if not self._T.isTweening then
        	return
        end
    
        self._T.elapsedTime = self._T.elapsedTime + delta
        if self._T.elapsedTime > self._T.tweenDuration then
        	self._T.elapsedTime = self._T.tweenDuration
        	self._T.isTweening = false
        end
    
        local vectorX = _TweenLogic:Ease(0, 6, self._T.tweenDuration, EaseType.QuartEaseIn, self._T.elapsedTime)
        self.Entity.TransformComponent.Position = self._T.originalPosition + Vector3(vectorX, 0, 0)
        end
    end
    

#### MakeNativeTween()

`MakeNativeTween()` 함수를 활용해 `SpriteRendererComponent`의 `SetAlpha()` 함수를 사용하는 예제입니다.
    
    
    @Component
    script SpriteFadeOut extends Component
        @ExecSpace("ServerOnly")
        method void OnBeginPlay()
            local tweener = _TweenLogic:MakeNativeTween(1, 0, 3, EaseType.Linear, self.Entity.SpriteRendererComponent, "SetAlpha")
            tweener:Play()
        end
    end
    

# SeeAlso

  * TransformComponent
  * EaseType
  * [TweenLogic을 활용해 엔티티 제어하기](/docs?postId=746)