Exemplo n.º 1
0
    public void FallIntoPosition(PuzzleManager.OnTileFallComplete callback, int comboDepth)
    {
        if (m_fallingCoroutine != null)
        {
            StopCoroutine(m_fallingCoroutine);
        }

        IsFalling          = true;
        m_fallingCoroutine = StartCoroutine(FallIntoPositionCoroutine(callback, comboDepth));
    }
Exemplo n.º 2
0
    public IEnumerator FallIntoPositionCoroutine(PuzzleManager.OnTileFallComplete callback, int comboDepth)
    {
        float timer = 0;

        Vector3 startPosition = transform.localPosition;

        while (timer < FallTime)
        {
            timer += Time.deltaTime;
            float ratio = timer / FallTime;

            float yRatio = (transform.localPosition.y - startPosition.y) / (TargetFallingLocalPosition.y - startPosition.y);
            transform.localPosition = new Vector3(
                transform.localPosition.x,
                FallCurve.Evaluate(ratio) * (TargetFallingLocalPosition.y - startPosition.y) + startPosition.y,
                transform.localPosition.z);

            yield return(new WaitForEndOfFrame());
        }

        IsFalling          = false;
        m_fallingCoroutine = null;
        callback(this, comboDepth);
    }