예제 #1
0
 protected override void Initialise()
 {
     container     = GetComponentInParent <MovingContainer>();
     composite     = GetComponent <CompositeCollider2D>();
     catcher       = GetComponent <PlatformCatcher>();
     m_Rigidbody2D = GetComponent <Rigidbody2D>();
 }
예제 #2
0
    private static IEnumerator MoveToRoutine(MovingContainer data, Action <Vector3> callback, Action endCallback)
    {
        float elapsed = 0;

        while (elapsed < data.Duration)
        {
            data.OriginPos = Vector3.Lerp(data.OriginPos, data.TargetPos, elapsed / data.Duration);

            callback?.Invoke(data.OriginPos);

            elapsed += Time.deltaTime;
            yield return(null);
        }

        data.OriginPos = data.TargetPos;
        callback.Invoke(data.OriginPos);
        endCallback?.Invoke();
    }
예제 #3
0
 public static Coroutine MoveTo(MovingContainer data, Action <Vector3> callback, Action endCallback = null)
 {
     CheckForObject();
     return(_routinesObject.StartCoroutine(MoveToRoutine(data, callback, endCallback)));
 }