protected void Awake()
 {
     LevelSelectionGrid.singleton = this;
 }
예제 #2
0
    private IEnumerator ShrinkMeasure(GameObject measure)
    {
        measure.transform.parent     = this.gameObject.transform;
        measure.transform.position   = GameManager.measureTransform.position;
        measure.transform.localScale = GameManager.measureTransform.localScale * (4.95f / 4.25f);

        LevelSelectionGrid grid = LevelSelectionGrid.singleton;

        GameObject measureTile;

        if (GameManager.integratedVersion)
        {
            measureTile = grid.musicUnlockTiles [currentLevel - 2];
            yield return(new WaitForSeconds(0.2f));
        }
        else
        {
            measureTile = grid.comicUnlockTiles [currentLevel - 2];
            measure.transform.localScale *= 2.5f;
            measure.transform.position    = new Vector3(0, 0, measure.transform.position.z);
            //measure.GetComponent<SpriteRenderer>().sprite.pivot
            yield return(new WaitForSeconds(2f));
        }

        Vector3 startPosition = measure.transform.position;
        Vector3 destPosition  = new Vector3(measureTile.transform.position.x, measureTile.transform.position.y, -9);

        Vector3 startScale = measure.transform.localScale;
        Vector3 destScale  = new Vector3(0f, 0f, startScale.z);

        float t, s;
        float currentTime = 0f;
        float moveTime    = Constants.measureMoveTime;
        float shrinkTime  = Constants.measureShrinkTime;

        Transform transform = measure.transform;

        while (currentTime <= moveTime)
        {
            t = currentTime / moveTime;
            t = t * t * t * (t * (6f * t - 15f) + 10f);

            s = currentTime / shrinkTime;
            s = s * s * s * (s * (6f * s - 15f) + 10f);

            transform.position   = Vector3.Lerp(startPosition, destPosition, t);
            transform.localScale = Vector3.Lerp(startScale, destScale, s);

            yield return(new WaitForEndOfFrame());

            currentTime += Time.deltaTime;
        }
        transform.position = destPosition;

        while (currentTime <= shrinkTime)
        {
            s = currentTime / shrinkTime;
            s = s * s * s * (s * (6f * s - 15f) + 10f);

            transform.localScale = Vector3.Lerp(startScale, destScale, s);

            yield return(new WaitForEndOfFrame());

            currentTime += Time.deltaTime;
        }

        Destroy(transform.gameObject);
        GameManager.measure = null;
    }
 protected void Awake()
 {
     LevelSelectionGrid.singleton = this;
 }