Ejemplo n.º 1
0
    IEnumerator Moving(PointLevel targetPoint)
    {
        sp.PlaySound(0);
        currentPoint.exitResponse.Invoke();
        boing.t = 0;
        currentPoint.Switch(false);
        targetPoint.Switch(true);
        canMove = false;
        Vector3 startPos = currentPoint.transform.position;
        float   t        = 0;

        while (t < moveTime)
        {
            t += Time.deltaTime;
            transform.position = Vector3.Lerp(startPos, targetPoint.transform.position, Ease.SmoothStep(t / moveTime));
            yield return(null);
        }
        switcher.Switch();
        currentPoint = targetPoint;
        currentPoint.enterResponse.Invoke();
        if (currentPoint.lvlInfo.success)
        {
            currentPoint.enterUnlockedResponse.Invoke();
        }
        canMove = (locked) ? false : true;
    }
Ejemplo n.º 2
0
    IEnumerator Moving(Point targetPoint)
    {
        sp.PlaySound(0);
        target  = targetPoint;
        boing.t = 0;
        currentPoint.Switch(false);
        if (currentPoint.nbOnTop == 0)
        {
            currentPoint.exitResponse.Invoke();
        }

        targetPoint.Switch(true);
        canMove = false;
        Vector3 startPos = currentPoint.transform.position;
        Vector3 goalPos  = targetPoint.transform.position;
        float   t        = 0;

        while (t < moveTime)
        {
            t += Time.deltaTime;
            float l = Mathf.Clamp(Ease.SmoothStep(t / moveTime), 0, 1);
            transform.position = Vector3.Lerp(startPos, goalPos, l);
            yield return(null);
        }
        switcher.Switch();
        currentPoint = targetPoint;
        if (targetPoint.nbOnTop == 1)
        {
            targetPoint.enterResponse.Invoke();
        }
        canMove = (locked)?false: true;
    }