Пример #1
0
    void Update()
    {
        if (isRoll)
        {
            velocity = Mathf.MoveTowards(velocity, 0, Time.deltaTime * speedRoll);
            casePanel.transform.Translate(new Vector2(velocity, 0) * Time.deltaTime / 5);
            if (velocity == 0)
            {
                isRoll = false;
                RaycastHit2D hit = Physics2D.Raycast(center.position, Vector3.forward);

                if (hit)
                {
                    if (hit.collider.tag == "Finish")
                    {
                        result = hit.collider.GetComponent <CaseHolder>();
                        StopAllCoroutines();
                        ShowPrizePanel();
                    }
                    else
                    {
                        velocity = -2f;
                        isRoll   = true;
                    }
                }
            }
        }
    }
Пример #2
0
    IEnumerator Prize()
    {
        Skin newSkin = GenerateSkin();

        shop.inventory.skins.Add(newSkin);

        AudioSource audio = prizePanel.GetComponent <AudioSource>();

        GameObject chest = prizePanel.Find("ImageSkin").gameObject;

        chest.GetComponent <Button>().interactable = false;
        Vector2 pos = chest.transform.localPosition;

        for (int i = 0; i < 50; i++)
        {
            float x = pos.x + Random.value * 4;
            float y = pos.y + Random.value * 3;
            chest.transform.localPosition = new Vector2(x, y);
            yield return(new WaitForSeconds(0.05f));
        }
        chest.transform.localPosition       = pos;
        chest.GetComponent <Image>().sprite = result.spriteOp;
        audio.Play();


        yield return(new WaitForSeconds(1));

        prizePanel.Find("Effect").gameObject.SetActive(true);

        float scale = chest.transform.localScale.x;

        for (; chest.transform.localScale.x > 0;)
        {
            chest.transform.localScale -= Vector3.one * Time.deltaTime * 10;
            yield return(new WaitForFixedUpdate());
        }
        chest.GetComponent <Image>().sprite = newSkin.sprite;

        for (; chest.transform.localScale.x < scale;)
        {
            chest.transform.localScale += Vector3.one * Time.deltaTime * 10;
            yield return(new WaitForFixedUpdate());
        }
        prizePanel.Find("Rarity").GetComponent <Text>().text   = newSkin.rarity.ToString();
        prizePanel.Find("skinName").GetComponent <Text>().text = newSkin.name;

        chest.GetComponent <Button>().interactable = true;
        canClosePrize = true;

        result = null;
    }