// RectTransform.MoveTo // Rect Transform을 현재 위치에서 지정한 위치로 이동시키는 애니메이션 public static void MoveTo(this RectTransform target, Vector2 pos, float time, float delay, iTween.EaseType easeType, System.Action onCompleteDelegate = null) { // iTween이 발생시킨 이벤트를 제어하는 핸들러를 설정한다 iTweenEventHandler eventHandler = SetUpEventHandler(target.gameObject); // 이동 애니메이션이 한 스텝 진행될 때마다 호출하는 콜백 메서드를 설정한다 eventHandler.OnUpdateMoveDelegate = (Vector2 value) => { // Rect Transform의 위치를 갱신한다 target.anchoredPosition = value; }; // 애니메이션이 끝났을 때 호출되는 콜백 메서드를 설정한다 eventHandler.OnCompleteDelegate = onCompleteDelegate; // iTween의 ValueTo 메서드를 호출해 애니메이션을 시작한다 iTween.ValueTo(target.gameObject, iTween.Hash( "from", target.anchoredPosition, "to", pos, "time", time, "delay", delay, "easetype", easeType, "onupdate", "OnUpdateMove", "onupdatetarget", eventHandler.gameObject, "oncomplete", "OnComplete", "oncompletetarget", eventHandler.gameObject )); }
// iTween이 발생시킨 이벤트를 제어하는 핸들러를 설정하는 메서드 private static iTweenEventHandler SetUpEventHandler(GameObject targetObj) { iTweenEventHandler eventHandler = targetObj.GetComponent <iTweenEventHandler>(); if (eventHandler == null) { eventHandler = targetObj.AddComponent <iTweenEventHandler>(); } return(eventHandler); }
public static void MoveTo(this RectTransform target, Vector2 pos, float time, float delay, iTween.EaseType easeType, System.Action onCompleteDelegate = null) { iTweenEventHandler eventHandler = SetUpEventHandler(target.gameObject); eventHandler.OnUpdateMoveDelegate = (Vector2 value) => { target.anchoredPosition = value; }; eventHandler.OnCompleteDelegate = onCompleteDelegate; iTween.ValueTo(target.gameObject, iTween.Hash( "from", target.anchoredPosition, "to", pos, "time", time, "delay", delay, "easetype", easeType, "onupdate", "OnUpdateMove", "onupdatetarget", eventHandler.gameObject, "oncomplete", "OnComplete", "oncompletetarget", eventHandler.gameObject)); }