Пример #1
0
    public void setupCircle(Circle circle, CirclePartState state = CirclePartState.Default)
    {
        this.state  = state;
        this.circle = circle;

        if (state == CirclePartState.Spike)
        {
            spriteRenderer.sprite = spikeSprites[Range(0, spikeSprites.Length)];
        }
        else
        {
            spriteRenderer.sprite = defaultSprite;
        }

        setColor(circle.randomColor());
        transform.SetParent(circle.transform);
        maxCollisionCount = circle.doubleCollisionCount ? 2 : 1;
    }
Пример #2
0
    private IEnumerator _reload(float time)
    {
        CirclePartState tmpState = state;

        state = CirclePartState.Reload;

        StopCoroutine(reloadCoroutine);

        hide();
        if (time == 0f)
        {
            hidePs.Play();
        }
        else
        {
            circle.gameController.audioController.brokenPlatform();
            DestructiveEntity entity = Instantiate(brokenCirclePart, transform.position, Quaternion.Euler(0f, 0f, Range(0f, 360f)));
            entity.brokeDown(spriteRenderer.color);
        }

        yield return(new WaitUntil(() => collisionDelay == false));

        if (time != 0f)
        {
            yield return(new WaitForSeconds(Range(time / 2f, time)));
        }

        state = tmpState;

        show();

        collisionCount = 0;
        setColor(circle.randomColor());
        if (state == CirclePartState.Spike)
        {
            spriteRenderer.sprite = spikeSprites[Range(0, spikeSprites.Length)];
        }
        else
        {
            state = CirclePartState.Default;
            spriteRenderer.sprite = defaultSprite;
        }
    }